java之抽象類

一、用abstract關鍵字來修飾一個類時,這個類叫作抽象類;用abstract來修飾一個方法時,該方法叫作抽象方法。this

二、含有抽象方法的類必須被聲明抽象類,抽象類必須被繼承,抽象方法必須被重寫。spa

三、抽象類不能被實例化。code

四、抽象方法只需聲明,而不需實現。blog

public class TestPolymorphic{
    public static void main(String args[]){
    
        //Animal animal = new Animal("animal");            抽象類不能被實例化
        Cat cat = new Cat("cat","blue");
        Dog dog = new Dog("dog","black");
        
        //Lily l1 = new Lily("l1",animal);
        Lily l2 = new Lily("l2",dog);
        
        //l1.myAnimalEnjoy();
        l2.myAnimalEnjoy();
    }
}
class Lily{
    private String name;
    private Animal animal;
    public Lily(String name, Animal animal){
        this.name = name;
        this.animal = animal;
    }
    public void myAnimalEnjoy(){
        animal.enjoy();
    }
}
abstract class Animal{                    //聲明抽象類
    private String name;
    public Animal(String name){
        this.name = name;
    }
    /*public void enjoy(){
        System.out.println("叫聲~~~");
    }*/
    public abstract void enjoy();        //聲明抽象方法
}
class Dog extends Animal{
    
    private String forlorColor;
    public Dog(String name,String forlorColor){
        super(name);
        this.forlorColor = forlorColor;
    }
    public void enjoy(){
        System.out.println("dog叫聲~~~");
    }
}
class Cat extends Animal{
    
    private String eyesColor;
    public Cat(String name,String eyesColor){
        super(name);
        this.eyesColor = eyesColor;
    }
    public void enjoy(){
        System.out.println("cat叫聲~~~");
    }
}

運行結果:繼承

總結:抽象類通常是用在多態。class

相關文章
相關標籤/搜索