package com.oop.demo08;
/**
* @ClassName: Action
* @Author: 南冥有猫不须铭
* @Date: 2021/4/22-2:48
* @Description: 抽象类
*/
//abstract 抽象类:类 extends:单继承~ (接口可以多继承)
public abstract class Action {
//约束~有人帮我们实现~
//abstract 抽象方法,只有方法名字,没有方法的实现({}里面的内容)!
public abstract void doSomething();
//1. 不能new这个抽象类,只能靠子类去实现它;(它就是一个)约束!
//2. 抽象类中可以写普通方法~
//3. 抽象方法必须在抽象类中~
//抽象的抽象:约束~ (规则、规矩)
//思考题? 抽象类不能new对象,那么存在构造器吗? 存在,用于子类super调用
//抽象类存在的意义~ 抽象出来~ 提高开发效率
}
package com.oop.demo08;
/**
* @ClassName: A
* @Author: 南冥有猫不须铭
* @Date: 2021/4/22-3:06
* @Description: 抽象类
*/
//抽象类的所有方法,继承了它(抽象类)的子类,都必须要实现它的方法~ 除非~子类也是abstract抽象类,则由子子类实现
public class A extends Action {
@Override
public void doSomething() { //方法重写
}
}
package com.oop.demo08;
/**
* @ClassName: Application
* @Author: 南冥有猫不须铭
* @Date: 2021/4/22-3:18
* @Description: 测试 抽象类
*/
public class Application {
public static void main(String[] args) {
//new Action(); //报错,不能new抽象类
}
}