面向对象-抽象类-1
// 父类 动物
public abstract class Animal { //抽象类要用abstract关键字
//abstract关键字要类和方法的权限修饰符后面!@@@
public abstract void eat(); //抽象方法没有具体的方法体
public void sleep(){ //抽象类中可以有具体的方法,
System.out.println("Z z z...");
}
}
//------------------------
// 子类 猫
public class Cat extends Animal{
@Override
public void eat() {
System.out.println("猫吃鱼.");
}
}//抽象类的子类,要么重写父类的所有抽象方法
//---------------------------
// 子类 狗
public abstract class Dog extends Animal {
} //抽象类的子类,不重写父类的所有抽象方法,就得自己是抽象类.
//---------------------------
//测试类
/*
1. 抽象类和抽象方法要用abstract关键字来修饰.
abstract关键字要类和方法的权限修饰符后面!
2. 抽象类里可以有非抽象方法.
3. 抽象类不能实例化! 要用多态的形式通过子类对象实例化.
4. 抽象类的子类,要么重写父类的所有抽象方法,要么自己是抽象类.
*/
public class Demo {
public static void main(String[] args) {
//Animal a = new Animal(); 抽象类不能实例化!
//要访问抽象类的方法,要用多态的方式,子类访问.
Animal a = new Cat();
a.sleep(); //调用父类的具体方法
a.eat(); //调用子类重写的方法
}
}
标签:子类,abstract,面向对象,Animal,抽象类,父类,public
From: https://www.cnblogs.com/lg369/p/17072290.html