什么是抽象類?
在Java中引入抽象類的概念是為了規(guī)范化繼承類,在抽象類中必須有抽象方法,而子類在繼承抽象類時必須實現(xiàn)抽象方法或者重寫抽象方法。通俗來講,我們定義一個animal父類,通過引入關(guān)鍵字abstract來將該類定義為一個抽象類,在抽象類中必須添加抽象方法,例如,我們?yōu)樗袆游锾砑映橄蠓椒?code>run()和shut(),在子類繼承抽象父類時必須重載run()和shut()這兩個抽象方法。
也就是說,抽象類使得我們在繼承父類時變得不再那么隨意,必須按照抽象父類的模板來實現(xiàn)子類的繼承!
示例代碼如下:
//定義一個抽象父類animal
public abstract class Animal {
//添加兩個抽象方法run()和bark()
public abstract void run();
public abstract void bark();
}
//定義一個Cat子類繼承抽象父類animal
class Cat extends Animal{
//在Cat子類中重寫父類的抽象方法run()
@Override
public void run() {
System.out.println("走貓步!??!");
}
//在Cat子類中重寫父類的抽象方法bark()
@Override
public void bark() {
System.out.println("喵喵喵?。?!");
}
}
public class TestAbstarct {
public static void main(String[] args){
Cat cat =new Cat();
cat.run();
cat.bark();
}
}
抽象類有以下幾個特性:
1.抽象類不可以直接實例化
2.有抽象方法的類就是抽象類
3.抽象類僅可以用來繼承
4.抽象類可以包含屬性、方法、構(gòu)造方法,但構(gòu)造方法只可以通過子類來實現(xiàn)
5.子類繼承抽象父類時,抽象父類的抽象方法必須實現(xiàn)