java繼承


 

一,繼承

 

  1. java三大特性之一(封裝,繼承,多態)。
  2. 繼承就是子類繼承父類的特征和和行為,使得子類對象(實例)具有父類的實例域和方法,還可以以此基礎添加新方法和域來滿足需求。
  3. 繼承需要符合的關系是:is-a,父類更通用,子類更具體。
  4. java不支持多繼承,即一個子類只能擁有一個父類。
  5. 子類對象實例化時一定先實例化父類對象。
  6. java中,所有繼承都是公有繼承,子類擁有父類非private屬性和方法。
  7. 已存在類:父類,超類,基類,新生類:子類,派生類,孩子類。

 

二,案例(格式)

public class Employee{
//添加方法和域
}

//子類繼承父類
public class Manager Employee{
//添加方法和域
}

 

三,方法覆蓋,super關鍵字,子類構造器

  • 超類中的有些方法對子類不一定適用,需要子類提供一個新的方法來覆蓋超類中的這個方法:
//超類
public class Employee{
...
    public double getSalary(){
    return salary;
    }
}

//子類,經理類不僅僅是返回工資 還有獎金的
public class Manager extends Employee{
...
    //覆蓋超類的getSalary方法
    public double getSalary(){
    return salary+bonus; //不起作用
    }
}
上述覆蓋是不起作用的,因為子類不能直接訪問超類(員工類)的私有域,所以可以使用特定關鍵字super,以下是改進:
public double getSalary(){
    return super.getSalary()+bonus;
}
 

四,super,this關鍵字

  • this
一是引用隱式參數。
二是調用該類其他構造器。
  • super
調用父類的方法。
調用父類的構造器。
通過super關鍵字來實現對父類成員的訪問,用來引用當前對象的父類,super與this引用不是類似的概念,因為super不是一個對象引用,不能將super賦給另一個對象變量,它只是一個指示編譯器調用超類方法的特殊關鍵字,super指向父類,this是指向自己的引用。

 

五,子類構造器

public Manager(String name,double salary,int year,int month,int day){
  
    //子類調用父類構造器一定要放在語句最前面  
    super(name,salary,year,month,day);
    bonus = 0;
}
 因為父類的私有域子類無法訪問進行初始化,所以可以通過supers實現對超類構造器的調用。
如果子類構造器沒有顯式的調用父類構造器,則會自動調用父類無參數的構造器,如果子類既沒有顯式調用,父類又沒有無參數構造器,系統則會報錯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM