JAVA笔记10-抽象类

(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("猫叫声。。。");
    }
}
原文地址:https://www.cnblogs.com/seven7seven/p/3656576.html