1、區分普通方法和抽象方法
(推薦教學:java入門教學)
在java中,當一個類別的方法被abstract關鍵字修飾時,該方法就稱為抽象方法,而抽象方法所在的類別必須被定義為抽象類別。當一個方法被定義為抽象方法後,意味著方法不會有具體的實現,而是在抽象類別的子類別中透過方法重寫進行實現。
2、定義抽象方法的語法格式:
[访问修饰符]abstract<返回类型><方法名>([参数列表])
abstract關鍵字表示方法定義為抽象方法。
3、普通方法和抽象方法的比較
抽象方法需要用abstract關鍵字修飾,普通方法不需要;
#普通方法有方法體,抽象方法沒有方法體。
4、區分普通類別和抽象類別
在java中,當一個類別被abstract修飾時,該類別稱為抽象類別。
5、普通類別和抽象類別的區別
抽象類別需要使用abstract關鍵字修飾,普通類別不需要;
普通類別可以實例化,抽象類別不能被實例化。
6、程式碼範例:
父類別
package demo.chongwu; public abstract class Pet { private String name = "无名氏"; private int health =100; private int love =0; //有参构造方法 public Pet (String name){ this.name =name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getHealth() { return health; } public void setHealth(int health) { this.health = health; } public int getLove() { return love; } public void setLove(int love) { this.love = love; } //抽象方法,输出宠物信息 public abstract void print(); }
子類別
package demo.chongwu; public class Dog extends Pet{ private String strain; public Dog(String name, String strain) { super(name); this.strain = strain; } public String getStrain() { return strain; } public void setStrain(String strain) { this.strain = strain; } @Override public void print() { System.out.println("我的名字是"+this.getName()+"我是一只"+this.strain+"."); } }
測試:
package demo.chongwu; public class Test { public static void main(String[] args) { Pet pet =new Dog("布尔","拉布拉多"); pet.print(); } } 输出结果: 我的名字是布尔我是一只拉布拉多.
說明:
透過將print方法抽象化,並且在子類別裡重寫父類別的print方法,這時候可以實例化子類別得到子類別對象,並且透過子類別物件呼叫子類別方法,從而輸出子類資訊。否則不這麼做的話,無法直接實例化抽象類,將無法輸出正確子類資訊。
(影片教學推薦:java影片教學)
7、抽象類別和抽象方法的優勢與限制
優勢:
抽象類別中已經實現的方法可以被其子類別使用,使得程式碼可以被重複使用;
為子類別提供了抽象方法,提供了子類別具有自身的獨特性。
抽象類別的限制:
父類別的方法不一定通用,因為子類別的方法比較特殊;
子類別繼承父類別抽象類別時,寫出來的方法可能會出現程式碼重複的情況。
以上是java抽象類別的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!