关于abstract关键字
一、abstrack关键字用于修饰方法或者类;
二、抽象方法
1、由abstrack修饰的方法,只有方法定义,没有方法体;
2、包含抽象方法的类必须是抽象类,不含抽象方法的类也可以是抽象类;
三、抽象类
1、抽象类不能被实例化;
2、抽象类需要被继承。因为抽象类中的抽象方法是没有方法体的,所以派生类继承抽象类以后通常要重写抽象方法。如果不重写抽象方法,那么相当于派生类也含有抽象方法,那么派生类也必须声明为抽象类。
3、抽象类的意义:
1)、封装了派生类的共同属性和行为,能够代码复用;
2)、为派生类提供了一个共同的类型,向上造型;
3)、可以包含抽象方法,为所有的派生类提供统一的入口,派生类的具体方法不同,但是入口相同。
设计原则:
如果是派生类共有的行为和属性抽到超类中(抽取共性);
如果行为一样则设计为普通方法,如果行为不同则设计为抽象方法;
若是部分派生类共有,设计为接口,接口是对继承单一性的扩展,实际上实现多继承。