繼承的概念:
java繼承是面向對象的最顯著的一個特征。繼承是從已有的類中派生出新的類,新的類能吸收已有類的數據屬性和行為,并能擴展新的能力。
繼承的特性:
1.子類繼承父類非PRivate修飾的屬性與方法
2.子類可以重寫父類的方法
3.子類可擁有自己的屬性與方法
4.子類不會繼承父類的構造器
5.子類不能覆蓋繼承的實例變量
6.子類通過super關鍵字調用隱藏的父類方法
package cn.jontim.blogs.example;/* * Java SE 面向對象之繼承 * 交通工具類 */public class Vehicle { //價格 public String price; //制造商 public String manufacturer; //速度 public String velocity; public void outStatement(){ System.out.println("我是一個交通工具~"); } public void outManufacturer(){ System.out.println("我的制造廠商是:"+manufacturer); }}package cn.jontim.blogs.example;/* * Java SE 面向對象之繼承 * 汽車類 */public class Car extends Vehicle{}在Cat類中沒有自定義任何屬性與方法,全部使用從父類繼承來的方法public class MainEntrance { public static void main(String[] args){ //子類繼承父類非private的屬性與方法 System.out.print("Cat:"); Car car = new Car(); car.manufacturer = "BMW"; car.outStatement(); car.outManufacturer(); }}輸出結果:Cat:我是一個交通工具~ 我的制造廠商是:BMW
子類繼承父類非private修飾的全部屬性與方法package cn.jontim.blogs.example;/* * Java SE 面向對象之繼承 * 飛機類 */public class Aircraft extends Vehicle{ public void outStatement(){ System.out.println("我是一架飛機~"); } //子類調用隱藏的父類方法 public void outSuper(){ super.outStatement(); }}public class MainEntrance { public static void main(String[] args){ //子類可重寫父類的方法 System.out.print("Aircraft:"); Aircraft aircraft = new Aircraft(); aircraft.outStatement(); aircraft.outSuper(); }}輸出結果:Aircraft:我是一架飛機~ 我是一個交通工具~子類可以重寫繼承于父類的方法,重寫的父類方法會默認隱藏子類可以用過super關鍵字調用隱藏的父類方法
package cn.jontim.blogs.example;/* * Java SE 面向對象之繼承 * 火車類 */public class Train extends Vehicle{ //長度 public int length = 200; public void outLength(){ System.out.println("我的長度是"+length+"米~"); }}public class MainEntrance { public static void main(String[] args){ //子類擁有自己的屬性和方法 System.out.print("Train:"); Train train = new Train(); train.outStatement(); train.outLength(); }}輸出結果:Train:我是一個交通工具~ 我的長度是200米~子類可以擁有自己的屬性與方法
package cn.jontim.blogs.example;/* * Java SE 面向對象之繼承 * 交通工具類 */public class Vehicle { //價格 public String price; //制造商 public String manufacturer; //速度 public String velocity; public void outStatement(){ System.out.println("我是一個交通工具~"); } public void outManufacturer(){ System.out.println("我的制造廠商是:"+manufacturer); } //構造方法 public Vehicle(String price){ this.price = price; }}package cn.jontim.blogs.example;/* * Java SE 面向對象之繼承 * 汽車類 */public class Car extends Vehicle{ public Car(){ //子類構造方法第一行必須調用父類構造方法 super("1000"); }}子類聲明實例對象時默認會調用父類的默認構造方法,如果父類沒有默認構造方法時,需要在子類的構造方法中第一行調用父類的構造方法
新聞熱點
疑難解答