抽象類 : 用關鍵字abstract ;一個類如果被abstract修飾那麼這個就叫抽象類。 如果abstract修飾方法 ,那麼這個方法就叫抽象的方法 如果abstract修飾類,那麼這個類叫抽象類。 如果一個類繼承了抽象類,必須要實現抽象類中的抽象方法。 abstract關鍵字的使用: 方法體 ...
抽象類 : 用關鍵字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 + "跑的很快");
}
}
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();
}
}