抽象类的使用方法
public class AbstractTest {
//实践一下
public static void main(String[] args) {
//new abs;
//- Cannot instantiate the type abs报错 原因:抽象类不能被实例化
Abstract abstract1 = new Abstract();
abstract1.doSomething();//体现继承性,继承父类的方法
abstract1.eat();//依靠子类的重写实现抽象方法
//抽象类
}
}
abstract class abs {
// 抽象类的本质是 类!!! 满足单继承
// 总结:抽象的类不一定有抽象方法,但是有抽象方法的类一定是抽象类
//抽象类不能被实例化 ,可以定义抽象方法,也可以定义普通方法,可以(必须)定义构造器(即使你看不到存在默认的构造器(构造方法)),
//因为需要子类运行父类的方法,必须进行实例化,也必须调用构造器中的super();最终调用Object类中的空参构造器
public abstract void eat();// 抽象方法,子类必须重写父类中的方法
// 因为抽象方法没有方法体,所以要靠实现类(子类)的重写的方法实现
public void doSomething() {// 普通方法可以在抽象类中定义
System.out.println("WDNMD!!");
}
}
//子类
class Abstract extends abs {
@Override
public void eat() {
System.out.println("子类的 eat()方法 执行");
//在eclipse中实现了某个抽象方法会用紫色的三角号标识
}
}