多态是在继承的基础上。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210329234620972.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmN
zZG4ubmV0L3dlaXhpbl80NDMzMTYzNw==,size_16,color_FFFFFF,t_70)
静态方法不可以重写
静态只与父类有关
写static好处就是可以直接类名.的形式引用
多态的编译看父类,运行看子类
如果一个抽象类中有了抽象方法,(可有可无),抽象类是不能实例化对象也就是不能new对象,是因为里面可能有抽象方法,而抽象方法是没有方法体的(定义),那么,调用抽象方法是没有意义的,所以为了避免不小心调用抽象方法,就规定抽象类不能new对象,因为连对象都new不了,就完全不可能调用抽象方法了。因此严格意义上抽象类必须包含抽象方法才有意义,因为抽象类本来就是为了避免调用已经存在的抽象类。
抽象类不能new自己的实例,但是可以new字类的对象
抽象方法和多态的使用可以提高效率,当需要更改new的子对象时,只需要改变名字就可以,因为下面的方法都是通用的
方法实现不了,但是依然还需要存在,那就是抽象方法
抽象方法就指望着重写,因此priviate与abstract不可以共存,priviate和final也不可以共存,static也不可。因为static修饰之后就变成类层级,就可以通过类名.来调用,而抽象类是不可以被调用的。
所以接口中没有构造方法,全都是抽象方法
接口弥补单继承,可以多继承
接口只能继承接口
类需要implement来和接口搭讪,并且要重写接口里面的方法。
接口弥补类不支持多继承的缺点