package itheima_03;
/*
抽象类
*/
public abstract class Animal {
private int age =20;
private final String city = "北京";
public Animal(){}
public Animal(int age){
this.age=age;
}
public void show(){
age = 40;
System.out.println(age);
// city = "上海";
System.out.println(city);
}
public abstract void eat();
}
package itheima_03;
/*
测试类
*/
public class AnimlaDemo {
public static void main(String[] args) {
Animal a = new Cat();
a.eat();
a.show();
}
}
package itheima_03;
public class Cat extends Animal{
@Override
public void eat() {
System.out.println("猫吃鱼");
}
}
抽象类的成员特点
成员变量
可以是变量
也可以是常量
构造方法
有构造方法,但不能实例化
那么,构造方法的作用是什么呢?用于子类访问父类数据的初始化
成员方法
可以有抽象方法:限定子类必须完成某些动作
也可以提高非抽象方法:提高代码复用性