package com.example.demo.abstractClass;
/**
* @Description 抽象类的理解和使用:
* 1、抽象类只能用来被继承
* 2、抽象类为所有子类提供了一个通用模板,子类可以在这个模板基础上进行扩展
* 3、通过抽象类,可以避免子类设计的随意性
*
* @Auther gf.x
* @Date 2020/4/8 12:28
*/
public abstract class Animal {
String str;
//abstract修饰的方法:抽象方法
public abstract void run(); //抽象方法的意义:将方法的设计和实现分开了
public void breath() {
System.out.println("呼吸!");
run();
}
public Animal() {
System.out.println("创造一个动物!");
}
}
class Cat extends Animal {
@Override
public void run() { //继承抽象类 必须重写抽象类的抽象方法
System.out.println("猫步小跑!");
}
}
class Dog extends Animal {
@Override
public void run() { //继承抽象类 必须重写抽象类的抽象方法
System.out.println("狗步快跑!");
}
}
package com.example.demo.abstractClass;
/**
* @Description 抽象类测试
* @Auther gf.x
* @Date 2020/4/8 12:46
*/
public class Test {
public static void main(String[] args) {
//Animal a = new Animal(); //抽象类不能实例化
Animal c = new Cat(); //多态
c.breath(); //抽象类不能实例化,但是可以通过子类对象调用属性和方法
}
}