一、用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