1. 程式人生 > 其它 >面向物件的基本特徵--繼承。

面向物件的基本特徵--繼承。

1.選用條件

面向物件的基本特徵之一:繼承

繼承:相同的屬性,特徵,方法,一般具有包含關係。我們可以選擇用繼承,接下來我們介紹一下繼承的使用和注意事項。(封裝,多型)

2.繼承的書寫

格式:public class 子類名 extends 父類名 { }

子類的特點:可以有父類的方法,也可以有自己特有的方法。

3.繼承的訪問特點

在子類方法中訪問一個變數:子類區域性, 子類成員,父類成員

super():表示父類物件的引用
this:表示引用本類物件的引用

子類中所有的構造方法預設都會訪問父類中無參的構造方法(自己給出無參構造方法)

子類會繼承父類,可能還會使用父類的資料。所以,子類初始化之前,一定要先完成父類資料的初始化。每一個子類構造方法的第一條語句預設都是:super()。

在子類方法中訪問一個方法:子類成員範,父類成員

4.方法重寫

子類和父類有一樣的方法,可以重寫父類的方法,也可以定義自己特有的方法。為了防止出錯,用@override註釋。私有方法不能被重寫。許可權:public>預設>私有。

5.繼承程式碼演示

//子類
public class Teacher {
    public void show() {
        System.out.println("show方法被呼叫");
    }
}
//父類
public class Student extends Teacher {
    public void method
() { System.out.println("method方法被呼叫"); } } //測試類 public class Test { public static void main(String[] args) { Fu f=new Fu(); f.show(); Zi z=new Zi(); z.method(); z.show(); } }

結果:
在這裡插入圖片描述

6.重寫程式碼演示

方法重寫的方法名必須一致,然後加入新的方法。用super進行繼承

//子類
public
class Phone { public void call(String name){ System.out.println("給"+name+"打電話"); } } //父類 public class NewPhone extends Phone{ @Override public void call(String name){ System.out.println("開啟視訊功能"); //System.out.println("給"+name+"打電話"); super.call(name);//繼承父類的原有的方法 } } //測試類 public class Test { public static void main(String[] args) { Phone p=new Phone(); p.call("小名"); System.out.println("============"); NewPhone np=new NewPhone(); np.call("小名"); } }

在這裡插入圖片描述

7.多層繼承

拓展Java中類只支援單繼承,不支援多繼承。但是可以多層繼承。
例如:class extends A,B,C{} 是錯誤的
正確如下:
class A
class B extends A
class C extends B
這樣C就可以繼承A,B中的方法了