1.抽象类没有方法体
1. 抽象类,抽象方法是什么样的?
都是用abstract修饰的;抽象方法只有方法签名,不能写方法体
//抽象类 public abstract class A { public abstract void run();//只有方法签名,没有方法体 }
2.抽象类有哪些注意事项和特点?
抽象类中可以不写抽象方法,但有抽象方法的类一定是抽象类
类有的成员(成员变量,方法,构造器) 抽象类都具备
抽象类不能创建对象,仅作为一种特殊的父类,让子类继承并实现, 一个类继承抽象类,必须重写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类
3.抽象类的应用场景和好处什么?
父类知道每个子类都要做某个行为,但每个子类要做的情况不一样,父类就定义成抽象方法, 交给子类去重写实现,我们做出这样的抽象类,就是为了更好的支持多态
4.抽象类的常见应用场景:设计模板方法设计模式
1.模板方法设计模式解决了什么问题?
解决方法中存在重复代码的问题
2.模板方法设计模式怎么写?
定义一个抽象类,在里面定义两个方法,一个是模板方法:放相同的代码;一个是抽象方法:具体实现交给子类,由子类完成子类的特定需求
3.模板方法建议用什么关键字修饰?为什么?
建议用final关键字修饰,final修饰的方法不可再被更改