抽象类
-
用abstract修饰符的类
-
先建立一个Action的抽象类
//抽象类: 类 extends: 单继承~ (接口可以多继承) public abstract class Action { //约束~ 有人帮我们实现~ //abstract,抽象方法,只有方法名字,没有方法的实现! public abstract void doSomeing(); }
-
既然有人帮我们实现,是谁呢?答:是继承抽象类的子类
//抽象类的所有方法,继承了它的子类,都必须实现他的方法~,除非他也是抽象类,让子类的子类去继承实现它的方法 public class A extends Action {//子类继承抽象类必须重写抽象类的方法,否则计会报错 @Override public void doSomeing() { // new Action(); 抽象类是不能new的(/不能实例化) } }
-
-
抽象类的注意点:
- 不能new这个抽象类,只能靠子类去实现它;抽象类的抽象方法只是一个约束!(理解成法律)
- 抽象类中可以写普通的方法~
- 抽象方法必须在抽象类中~
- 抽象的抽象(抽象方法):约束!
-
思考:new,存在构造器吗?答:不存在构造器,这个抽象类都不能被实例化,都没有public Action()这个构造方法,说明没有默认的构造器。
-
抽象类存在的意义:
eg: 游戏创建一个角色,创建这个角色很麻烦,但是我们可以把这个角色的公共属性抽象出来,我每创建一个角色,我们就去继承它的抽象类重写它的方法,改掉一些特殊的东西,说白了就是节省代码,提高开发效率。