package TcmStudy.day25;
abstract class Animal{ // 抽象类 (1) 不能创建对象
// 抽象方法 没有实体 必须子类重写它 目的是为了子类完成规定动作的 起到模板的作用
// 子类没有重写 会报错
public abstract void run(); // (2)有抽象方法的类 一定是抽象类 但抽象类可以没有抽象方法
public abstract void eat();
public Animal(){};// (3)可以用构造方法 用处是提供给子类初始化使用
}
class Cat extends Animal{
public void run(){ // 重写父类的run方法 必须有方法体
// 重写目的是子类必须重写父类的抽象方法
// (4) 子类应该重写父类所有的抽象方法 否则编译报错
// 编译过程 .java--> .class(字节码)
System.out.println("小猫跑起来很快...");
}
public void eat(){ // 实现方法
System.out.println("小猫吃鱼...");
}
}
public class CatTest {
public static void main(String[] args) {
Cat c = new Cat();
c.run();
c.eat();
}
}