Java繼承

繼承的概念

繼承是面向?qū)ο笞铒@著的一個特性。繼承是從已有的類中派生出新的類,新的類能吸收已有類的數(shù)據(jù)屬性和行為崇决,并能擴展新的能力。

在Java之中抵赢,如果要實現(xiàn)繼承的關(guān)系,可以使用如下的語法:

class 子類 extends 父類 {}

子類又被稱為派生類; 父類又被稱為超類。

觀察繼承的基本實現(xiàn):

package com.wz.extendsdemo;

class Person {
    private String name;
    private int age;

   public void setName(String name) {
        this.name = name;
    }

   public void setAge(int age) {
        this.age = age;
    }

   public String getName() {
        return this.name;
    }

   public int getAge() {
        return this.age;
    }
}

class Student extends Person { // Student類繼承了Person類
}

public class TestDemo {
    public static void main(String args[]) {
        Student stu = new Student(); // 實例化的是子類
        stu.setName("張三"); // Person類定義
        stu.setAge(20); // Person類定義
        System.out.println("姓名:" + stu.getName() + "吕粗,年齡:" + stu.getAge());
    }
}

運行結(jié)果:

姓名:張三,年齡:20

通過代碼可以發(fā)現(xiàn)旭愧,子類(Student)并沒有定義任何的操作颅筋,而在主類中所使用的全部操作都是由Person類定義的虐秋,這證明:子類即使不擴充父類,也能維持父類的操作垃沦。

在子類之中擴充父類的功能:

package com.wz.extendsdemo;

class Person {
    private String name;
    private int age;

   public void setName(String name) {
        this.name = name;
    }

   public void setAge(int age) {
        this.age = age;
    }

   public String getName() {
        return this.name;
    }

   public int getAge() {
        return this.age;
    }
}

class Student extends Person { // Student類繼承了Person類
    private String school; // 子類的屬性

   public void setSchool(String school) {
        this.school = school;
    }

   public String getSchool() {
        return this.school;
    }
}

public class TestDemo {
 public static void main(String args[]) {
        Student stu = new Student(); // 實例化的是子類
        stu.setName("張三"); // Person類定義
        stu.setAge(20); // Person類定義
        stu.setSchool("清華大學(xué)"); // Student類擴充方法
        System.out.println("姓名:" + stu.getName() + ",年齡:" + stu.getAge() + "用押,學(xué)校:" + stu.getSchool());
    }
}

運行結(jié)果:

姓名:張三肢簿,年齡:20,學(xué)校:清華大學(xué)

object:所有類的超類

object類是所有類的超類蜻拨,所有的類都是由object類擴展而來

但是沒有必要可以的去用類繼承object類池充。

可以用object類引用任何類型的對象

Object a =new Test();

只有八種基本類型不是Object類型擴展而來的(bit short int long char float double boolean ),其他的都是類類型缎讼,也都是由Object擴

展而來收夸。包括對象,數(shù)組等血崭。

object也有很多方法卧惜,tostring,equals夹纫,getclass等咽瓷。

其中類也重寫了Object方法。其中的getclass的方法可以用來反射舰讹。

泛型數(shù)組列表

在java中,不能通過直接通過T[] tarr=new T[10]的方式來創(chuàng)建數(shù)組,最簡單的方式便是通過Array.newInstance(Class<t>type,int size)的方式來創(chuàng)建數(shù)組

泛型有三種使用方式茅姜,分別為:泛型類、泛型接口月匣、泛型方法

泛型類型用于類的定義中钻洒,被稱為泛型類。通過泛型可以完成對一組類的操作對外開放相同的接口锄开。最典型的就是各種容器類素标,如:List、Set院刁、Map

對象包裝器與自動打包

所有基本類型都有一個與之對應(yīng)的類糯钙,例如,Integer類對應(yīng)基本類型int退腥。通常任岸,這些類稱為包裝器(wrapping)。這些對象包裝器擁有很鮮明的名字:Integer狡刘、Long享潜、Float、Double嗅蔬、Short剑按、Byte疾就、Character、Void和Boolean(前面六個類派生于公共的超類Number)艺蝴。對象包裝器類是不可變的猬腰,一旦構(gòu)造了包裝器,就不允許更改包裝器里面的值猜敢。同時姑荷,對象包裝器還是final,因此不能定義他們的子類缩擂。

定義一個整形數(shù)組列表鼠冕,尖括號里面的參數(shù)類型不允許是基本類型,也就是說不允許寫成ArrayList<int>胯盯。這里就用到了Integer對象包裝器類懈费。我們可以聲明一個Integer對象的數(shù)組列表。

ArrayList<Integer> list = new ArrayList<Integer>;
當調(diào)用:
list.add(3);
將自動變換成:
list.add(new Integer(3));
這種變換稱之自動打包(autoboxing)博脑。
相反的如果將Integer對象賦值給一個int值時憎乙,將會自動第拆包。也就是說編譯器將下列語句:

int n = list.get(i);
翻譯成:
int n = list.get(i).intValue();
甚至在算術(shù)表達式中也能夠自動的打包和拆包趋厉。例如寨闹,可以將自增操作符應(yīng)用于一個包裝器引用

Integer n = 3;
n++;

編譯器將自動第插入一條拆開對象包的指令,然后進行自增運算君账,最后再將結(jié)果打入對象包內(nèi)繁堡。
很多情況下,容易有一種假象乡数,即基本類型和他們的對象包裝類是一樣的椭蹄,只是他們的相等性不同,==運算符也可以用于包裝器對象净赴,只不過檢測的是對象是否指向同一個存儲區(qū)域绳矩。

參數(shù)數(shù)量可變的方法

可變參數(shù):適用于參數(shù)個數(shù)不確定,類型確定的情況玖翅,java把可變參數(shù)當做數(shù)組處理翼馆。

注意:可變參數(shù)必須位于最后一項。

原因:當可變參數(shù)個數(shù)多余一個時金度,必將有一個不是最后一項应媚,所以只支持有一個可變參數(shù)。因為參數(shù)個數(shù)不定猜极,所以當其后邊還有相同類型參數(shù)時中姜,java無法區(qū)分傳入的參數(shù)屬于前一個可變參數(shù)還是后邊的參數(shù),所以只能讓可變參數(shù)位于最后一項跟伏。

枚舉類

有的時候一個類的對象是有限且固定的丢胚,這種情況下我們使用枚舉類

枚舉類更加直觀翩瓜,類型安全。使用常量會有以下幾個缺陷:

1. 類型不安全携龟。若一個方法中要求傳入季節(jié)這個參數(shù)兔跌,用常量的話,形參就是int類型峡蟋,開發(fā)者傳入任意類型的int類型值就行浮定,但是如果是枚舉類型的話,就只能傳入枚舉類中包含的對象层亿。

2. 沒有命名空間。開發(fā)者要在命名的時候以SEASON_開頭立美,這樣另外一個開發(fā)者再看這段代碼的時候匿又,才知道這四個常量分別代表季節(jié)。

先看一個簡單的枚舉類建蹄。

package enumcase;

public enum SeasonEnum {
    SPRING,SUMMER,FALL,WINTER;
}

反射

Java反射就是在運行狀態(tài)中碌更,對于任意一個類,都能夠知道這個類的所有屬性和方法洞慎;對于任意一個對象痛单,都能夠調(diào)用它的任意方法和屬性;并且能改變它的屬性劲腿。

下面是一個基本的類 Person

package com.ys.reflex;
public class Person {
      //私有屬性
      private String name = "Tom";
      //公有屬性
      public int age = 18;
      //構(gòu)造方法
      public Person() {    
     }
      //私有方法
      private void say(){
           System.out.println("private say()...");
     }
      //公有方法
      public void work(){
           System.out.println("public work()...");
     }
 }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末旭绒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子焦人,更是在濱河造成了極大的恐慌挥吵,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件花椭,死亡現(xiàn)場離奇詭異忽匈,居然都是意外死亡,警方通過查閱死者的電腦和手機矿辽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門丹允,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人袋倔,你說我怎么就攤上這事雕蔽。” “怎么了奕污?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵萎羔,是天一觀的道長。 經(jīng)常有香客問我碳默,道長贾陷,這世上最難降的妖魔是什么缘眶? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮髓废,結(jié)果婚禮上巷懈,老公的妹妹穿的比我還像新娘。我一直安慰自己慌洪,他們只是感情好顶燕,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著冈爹,像睡著了一般涌攻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上频伤,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天恳谎,我揣著相機與錄音,去河邊找鬼憋肖。 笑死因痛,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的岸更。 我是一名探鬼主播鸵膏,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼怎炊!你這毒婦竟也來了谭企?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤评肆,失蹤者是張志新(化名)和其女友劉穎赞咙,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體糟港,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡攀操,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了秸抚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片速和。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖剥汤,靈堂內(nèi)的尸體忽然破棺而出颠放,到底是詐尸還是另有隱情,我是刑警寧澤吭敢,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布碰凶,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏欲低。R本人自食惡果不足惜辕宏,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望砾莱。 院中可真熱鬧瑞筐,春花似錦、人聲如沸腊瑟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽闰非。三九已至膘格,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間财松,已是汗流浹背闯袒。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留游岳,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓其徙,卻偏偏與公主長得像胚迫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子唾那,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355