Android Java學(xué)習(xí)——繼承關(guān)系套才、代碼塊、內(nèi)部類

目的

今天的學(xué)習(xí)是關(guān)于繼承關(guān)系慕淡、代碼塊和內(nèi)部類的學(xué)習(xí)背伴。具體的是完成了一個Person父類,借父類編碼了一個Salary組,話不多說傻寂,開始今天的學(xué)習(xí)息尺。

繼承關(guān)系

在Java中,我們創(chuàng)建的一個類疾掰,再進行創(chuàng)建類時需要用到上個類的屬性以及變量搂誉,可以使用繼承來獲得上個類的內(nèi)容。繼承的關(guān)鍵字是extants 静檬,具體的使用方式為A extants B炭懊,A獲得B的屬性和變量/A繼承B(A為子類,B為父類)拂檩。我們在使用是要注意侮腹,Java 中只存在單繼承關(guān)系,要實現(xiàn)多繼承只能變相完成稻励,即A想繼承B父阻、C屬性變量只能通過A繼承B,而B繼承C的方式完成望抽。下面創(chuàng)建一個Person類為父類加矛,用Students類為子類完成實踐。

class Person{
    String name;
    int age;
    public void walk() {
    }
    public void eat() {
    }


}
class Students extends Person1{
    private int salary;

    @Override
    public String toString() {
        return "Salary{" +
                "hobby='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

代碼塊

  • 代碼塊是什么糠聪?
    代碼塊是一種常見的代碼形式荒椭。他用大括號“{}”將多行代碼封裝在一起,形成一個獨立的代碼區(qū)舰蟆,這就構(gòu)成了代碼塊趣惠。
    普通代碼塊:是最常見的代碼塊,在方法里用一對“{}”括起來的數(shù)據(jù)身害,就是普通的代碼塊
    構(gòu)造代碼塊:是在類中直接定義的味悄,用“{}”括起來的代碼。每次調(diào)用構(gòu)造方法前執(zhí)行塌鸯,都會先執(zhí)行構(gòu)造代碼塊侍瑟。
    靜態(tài)代碼塊:他在類中的成員位置,用“{}”括起來的代碼丙猬。只不過他用了static修飾了涨颜,,且執(zhí)行一次
  • 代碼塊有什么用茧球?
    簡單的說庭瑰,封裝。把需要多次使用的屬性和方法封裝起來抢埋,使用時直接調(diào)用弹灭,或者設(shè)置在某些環(huán)境下的特殊功能

內(nèi)部類學(xué)習(xí)

我們創(chuàng)建一個類之后督暂,在類的內(nèi)部在定義一個新的類。這個類就是內(nèi)部類穷吮,這個類含有內(nèi)部類的類稱為外部類逻翁。內(nèi)部類可以調(diào)用外部類的屬性和變量,外部類不能直接使用內(nèi)部類的東西捡鱼。需要使用時要通過創(chuàng)建一個新的對象來間接使用八回。簡單的說內(nèi)部類就是 一個類定義在另一個類的內(nèi)部
我們使用內(nèi)部類的原因是:

  1. 一個內(nèi)部類的對象能夠訪問創(chuàng)建它的對象的實現(xiàn),包括私有數(shù)據(jù)堰汉。
  2. 對于同一個包中的其他類來說辽社,內(nèi)部類能夠隱藏起來。
  3. 匿名內(nèi)部類可以很方便的定義回調(diào)翘鸭。
  4. 使用內(nèi)部類可以非常方便的編寫事件驅(qū)動程序


    image.png

設(shè)計一個簡單的繼承關(guān)系

要求:
image.png

具體代碼為:

public class Person2 {
    protected String name;
    protected int age;

    public Person2(String name, int age){
        this.name = name;
        this.age = age;
    }

    public void walk(){
    }

    public void eat(){
    }
}

class CivilServant extends Person2{
    private int salary;
    private int count;

    public CivilServant(String name, int age,
                        int salary, int count){
        super(name, age);
        this.salary = salary;
        this.count = count;
    }

    @Override
    public void walk() {
        System.out.println("慢慢地走");
    }

    @Override
    public void eat() {
        System.out.println("大吃大喝");
    }


    public void cShow() {
        System.out.println("CivilServant{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", salary=" + salary +
                ", count=" + count +
                '}');
    }
}

class Worker extends  Person2{
    private int salary;
    private String tec;

    public Worker(String name, int age, int salary,
                  String tec){
        super(name, age);
        this.salary = salary;
        this.tec = tec;
    }

    @Override
    public void walk() {
        System.out.println("快跑呢");
    }

    @Override
    public void eat() {
        System.out.println("急匆匆吃");
    }

    public void wShow() {
        System.out.println( "Worker{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", salary=" + salary +
                ", tec='" + tec + '\'' +
                '}');
    }
}

class Test3{
    public static void main(String[] args){
//        Person[] peoples = new Person[6];
        ArrayList<Person2> peoples = new ArrayList<>();

        Person2 c1 = new CivilServant("小王", 30, 5000, 30);
        Person2 c2 = new CivilServant("小李", 32, 7000, 34);
        Person2 c3 = new CivilServant("張三", 33, 2000, 32);

        //peoples.add((Person2)c1);
        peoples.add(c1);
        peoples.add(c2);
        peoples.add(c3);

        Person2 w1 = new Worker("Jack",23,8922, "Android開發(fā)");
        Person2 w2 = new Worker("Rose",22,10323, "iOS開發(fā)");
        Person2 w3 = new Worker("Merry",20,8123, "web開發(fā)");

        peoples.add(w1);
        peoples.add(w2);
        peoples.add(w3);

        for (Person2 p: peoples){
           //找到p到底是哪個類型的對象
            if(p instanceof CivilServant){
                //公務(wù)員
                CivilServant c = (CivilServant)p;
                c.cShow();
                c.walk();
                c.eat();
            }else{
                //員工
                Worker w = (Worker)p;
                w.wShow();
                w.walk();
                w.eat();
            }
        }
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市戳葵,隨后出現(xiàn)的幾起案子就乓,更是在濱河造成了極大的恐慌,老刑警劉巖拱烁,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件生蚁,死亡現(xiàn)場離奇詭異,居然都是意外死亡戏自,警方通過查閱死者的電腦和手機邦投,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來擅笔,“玉大人志衣,你說我怎么就攤上這事猛们∧罡” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵弯淘,是天一觀的道長绿店。 經(jīng)常有香客問我,道長庐橙,這世上最難降的妖魔是什么假勿? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮态鳖,結(jié)果婚禮上转培,老公的妹妹穿的比我還像新娘。我一直安慰自己郁惜,他們只是感情好堡距,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布甲锡。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上悼泌,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天见转,我揣著相機與錄音,去河邊找鬼厅瞎。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的企量。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼亡电,長吁一口氣:“原來是場噩夢啊……” “哼届巩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起份乒,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤恕汇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后或辖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瘾英,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年颂暇,在試婚紗的時候發(fā)現(xiàn)自己被綠了缺谴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡耳鸯,死狀恐怖湿蛔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情片拍,我是刑警寧澤煌集,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站捌省,受9級特大地震影響苫纤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纲缓,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一卷拘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧祝高,春花似錦栗弟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瓣蛀。三九已至,卻和暖如春雷厂,著一層夾襖步出監(jiān)牢的瞬間惋增,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工改鲫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留诈皿,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓像棘,卻偏偏與公主長得像稽亏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子缕题,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容