(1)abstrac关键字类修饰的类是抽象类,用abstract修饰的方法是抽象方法;
(2)含有抽象方法的类必须被定义为抽象类;
(3)抽象类必须被继承,抽象方法必须被重写(或者将子类也声明为抽象类);
(4)抽象类不能被实例化;
(5)抽象方法只需声明,不需实现。如:public abstract void enjoy();//抽象方法
例如:JAVA笔记9中可以将Animal定义为抽象类(仅改变Animal的定义即可)。
public class TestAnimal{ public static void main(String args[]){ Dog d=new Dog("dogname","black"); Cat c=new Cat("catname","blue"); Lady l1=new Lady("l1",c); Lady l2=new Lady("l2",d); l1.myPetEnjoy();//猫叫声。。。 l2.myPetEnjoy();//狗叫声。。。 } } class Lady{ String name; Animal pet; Lady(String name,Animal pet){ this.name=name; this.pet=pet; } void myPetEnjoy(){ pet.enjoy(); } } abstract class Animal{//抽象类 public String name; Animal(String name){ this.name=name; } abstract void enjoy();//抽象方法 } class Dog extends Animal{ public String furColor; Dog(String name,String furColor){ super(name); this.furColor=furColor; } void enjoy(){ System.out.println("狗叫声。。。"); } } class Cat extends Animal{ public String eyesColor; Cat(String name,String eyesColor){ super(name); this.eyesColor=eyesColor; } void enjoy(){ System.out.println("猫叫声。。。"); } }