1. 程式人生 > >Java面向對象—繼承

Java面向對象—繼承

顯示 同名 logs 註意事項 pan pac color nds 對象的引用

概述:

1、多個類相同的屬性和功能抽取成另一個類, 讓具有特有功能的類繼承這個類. 2、通過 extends 關鍵字可以實現類與類的繼承

格式:

class 子類名 extends 父類名 {}

特點 :

1、一個類只能有一個父類,不能有多個父類 2、Java 支持多層繼承

package cn.czbk.no5;

public class TestExtends {
public static void main(String[] args) {
C c=new C();
c.ashow();
c.bshow();
A a=new A();
B b=new B();
a.apshow();
System.out.println(b.a);
}
}
class A{ private int a; public void ashow(){ System.out.println("A class"); } private void aprshow(){ System.out.println("A private show不可被外界訪問"); } protected void apshow(){ System.out.println("A protected show"); } } class B extends A{ protected String a="protected String"; public void bshow(){ System.out.println(
"B class"); } } class C extends B{}

繼承的註意事項

1、子類只能繼承父類所有非私有的成員(成員方法和成員變量)

2、子類不能繼承父類的構造方法

3、不要為了部分功能而去繼承

package cn.czbk.no5;

public class TestExtends1 {
public static void main(String[] args) {
CC cc=new CC();
}
}
class AA{
public AA(String a){
System.out.println(a);
}
}
class BB extends AA{
public
BB(){ super("abc");//繼承AA類的話如果AA有自己定義構造方法的話要在這個地方顯示聲明 System.out.println("BB cont"); } } class CC extends BB{ public CC(){ //會默認調用父類的空參構造方法 System.out.println("CC cont"); } }

繼承中成員變量的關系

this:當前對象的引用

1、this.成員變量

2、this.成員方法(...)

3、this(...)調用自己構造方法

super:當前對象父類對象的引用

1、super.成員變量

2、super.成員方法(...)

3、super(...)調用父類的構造方法

繼承中子父類構造方法的關系

1.子類構造默認會訪問父類的空參構造, 什麽都不寫,子類構造默認第一句是 super();

2.如果父類沒有空參構造,子類可以顯示通過 super(參數列表)語句調用父類帶參構造

3.子類構造可以通過 this(..)調用其他構造,讓其他構造去訪問父類構造.

繼承中成員方法關系

同名:子類對象調用的是子類的方法.

方法重寫:子類中出現了和父類中一模一樣的方法聲明,也被稱為方法覆蓋,方法復寫。

重寫和重載的區別:

重載的特點:在同一類中。方法名相同,參數列表不同。

重寫的特點:要有繼承關系。在子父類中方法的聲明相同(方法名和參數列表都相同)。覆蓋 時,子類方法訪問權限不能小於父類方法的訪問權限。靜態只能覆蓋靜態。

Java面向對象—繼承