首頁 >Java >java教程 >java中的抽象類別

java中的抽象類別

高洛峰
高洛峰原創
2016-11-19 16:30:101561瀏覽

抽象類別 : 用關鍵字abstract ;一個類別如果被abstract修飾那麼這個就叫抽象類別。
如果abstract修飾方法 ,那麼這個方法就叫抽象的方法
如果abstract修飾類,那麼這個類別叫抽象類別。
如果一個類別繼承了抽象類,必須要實作抽象類別中的抽象方法。

abstract關鍵字的使用:

方法體 : 方法中大括號的內容就是方法體。
1.如果一個方法沒有方法體,那麼這個方法必須要用abstract 來修飾。
2.如果一個類別中有抽象方法,那麼這個類別必須用abstract 來修飾 ,為抽象的類別。
3.如果一個非抽象的類,繼承了這個抽象類,那麼這個非抽象類別中必須重寫所有的抽象方法。
4.一個抽象類別中是可以有非抽象的方法。
5.一個抽象類別中是可以存在建構方法。作用是讓子類別能過度初始化父類別中的變數。
6.抽象類別無法建立物件
          原因:如果建立對象,物件就可以呼叫到抽象方法,這樣呼叫抽象方法是沒有意義。

7.一個抽象類別中是可以不出現抽象方法的。

abstract關鍵字的使用場景:
我們在描述一個事物的時候,發現這個事物確實存在某種行為,但是這種行為又不具體,那麼這個時候就可以抽取這種行為聲明一個沒有實現的行為,這種行為就叫抽象的行為,那麼這個時候就需要用到抽象類別。

//透過abstract 關鍵字修飾的類別稱為抽象類別。
abstract class Animal
{
String name;
String color;
abstract public void run ();//抽象方法是沒有主體,沒有方法的具體實作。

public void eat (){
System.out.println("動物在吃東西");
}

}

//一非抽象的類別繼承了抽象類,必須實作抽象類別中的所有方法。
class Dog extends Animal
{

//需要重寫父類中的run方法

public void run(){

System.out.println(name + "跑的很快");

System.out.println(name + "跑的很快");

}

}

class Fish extends Animal

{

//重寫方法: 沒有強制要求重寫run方法。

//應該要重寫,但是我可以不重寫。這樣就容易出問題。

//想一個方法強制讓子類別重寫父類別中的某一個方法

public void run(){
System.out.println(name+"游得很快");

}

}

class Demo8 
{
public static void main(String[] args) 
{

Dog d = new Dog();
d.name = "高加索";
d.run();
d.eat(); ;
Fish fish = new Fish();
fish.name = "鯨魚";
fish.run();
fish.eat();

}

}

🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:JavaAPI下一篇:JavaAPI