【學習筆記】java物件導向進階編程1

來源:互聯網
上載者:User

標籤:

內容包含:

/************************
封裝
繼承以及使用繼承所帶來的問題剖析
變數隱藏與方法重寫

*************************/

一. 封裝

通過get和set進行封裝

這裡面有個小技巧:通過快速鍵 Alt + Shift + 3 進行選擇一些快速高效的方法,選擇get和set進行快速建立,如下代碼:

package com.jfu.one;public class packAge {    private int dog;    private String cat;                public int getDog() {        return dog;    }    public void setDog(int dog) {        this.dog = dog;    }    public String getCat() {        return cat;    }    public void setCat(String cat) {        this.cat = cat;    }    public static void main(String[] args){            }}


二. 繼承

作用:通過繼承可以實現代碼的複用。

java不支援多繼承.

子類可繼承父類的變數和方法, 除了private.

通過在類的聲明中加入extends子句來建立一個類的子類:

class SubClass extends SuperClass(){    }

 

舉例如下:


Car為父類, SmallCar為子類繼承Car, 而BMW繼承SmallCar

Car.java

package Carry;public class Car {    int price;    private String color;    public static void print(){        System.out.println("父類Car");    }}

 

SmallCar.java

package Carry;public class SmallCar extends Car {        void smallcar(){            System.out.println("這個一個小車子類");    }        public static void main(String[] args){        SmallCar smallcar = new SmallCar();        smallcar.print();    }}


BMW.java

package Carry;public class BMW extends SmallCar{    public static void main(String[] args){        BMW bmw = new BMW();        bmw.print();        bmw.smallcar();    }}

 

運行BMW.java, 得出的結果:

父類Car這個一個小車子類


結果分析:

在BMW.java中, 這個類, 繼承了SmallCar類, 而SmallCar類又繼承於Car類, 所以BMW類可以使用SmallCar類和Car的屬性和方法.

 

三. 繼承中的變數隱藏及方法重載原則

變數隱藏原則:

子類中變數名與繼承自父類的變數名相同時, 則繼承自父類的變數將隱藏.

方法重寫原則:

1. 必須要有繼承關係

2. 重寫後的方法不能比被重寫的方法有更嚴格的存取權限, 可以相同.

3. 改寫後的重在方法不可以比重載的方法產生更多的例外(異常).

4. 傳回值, 方法名, 方法的參數個數必須與父類一致. (也就是說, 僅僅修改了裡面的內容, 其他的不能改變!)

Animal.java

package OverWrite;public class Animal {    public void back(){        System.out.println("動物在說話");    }}

 

Dog.java

package OverWrite;public class Dog extends Animal {        //方法重寫    public void back(){        System.out.println("狗在說話");    }        public static void main(String[] args){        Dog dog = new Dog();        dog.back();    }}

 

執行結果:

狗在說話

 

【學習筆記】java物件導向進階編程1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.