多态
多态,指的是【对象】的不同形态,把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程 成员变量,编译看左边,运行看左边成员方法,编译看左边,运行看右边【只限于重写方法,在多态中】若要访问子类特有的,要向下转型。 接口 接口是指多个类的公共规范是引用类型接口:就是我可以获取接口这个功能,抽象类是我可以继承类中的所有接口是一个功能,不是一个类,抽象类是一个类接口中有:1.抽象方法2.变量1.8:3.默认方法,4.静态方法1.9:私有方法*/ 抽象方法都是public 和 abstract,并且可以省略*/ 接口变量默认public static final,有final必须赋值 /*接口中没有静态代码块以及构造方法,抽象类有,但是不能new,只能被子类继承接口可以有多个,继承的父类只能有一个实现多个接口,若接口中方法重复,则只实现其中一个方法若实现类没有全部实现接口中的抽象方法,那么这个实现类必须是抽象类若多个接口类中默认方法重复了,则在实现类中要重写,没带default若接口类与父类方法重复了,则优先父类的方法*//*接口之间也可以继承,而且是多继承
若出现2个父类接口默认方法相同,那么要重写,且要带着default关键字,上面的就没带*/ 接口,抽象类,继承,多态 的好处1.继承:子类少写了代码(公共代码抽取出来写成父类,子类去继承)继承是多态的前提。2.多态:通用了代码,屏蔽了子类对象不同状态(左边都一样)3.抽象类:就是具备抽象方法的父类(就是一个父类,只不过里面有的方法是抽象方法,作用和【继承】中的父类一样,抽象方法为子类提供了方法名)4.接口:(1)给【功能】提供了一个规范,领导让a去实现某一功能,再让b实现某一功能,希望他们最后实现的都是根据一定规范的 (2)扩展性,不需要修改类其他部分,只需要实现接口类来添加接口功能。接口和抽象类宏观区别 我们会感觉接口和抽象类的子类和实现类都是继承或实现(当然接口实现类只能实现,接口中1.8之前只有抽象方法),我们会感觉貌似没什么不同,实则,抽象类是指父类,子类是继承了它,接口是指一个功能,比如老师会教学,在逻辑上要说得通。 所以,区别在逻辑上以及一些小的定义,比如成变,是否有方法体有有区别。 从使用上来看,一个类可以实现多个接口,但是不能继承多个抽象类。 接口的字段只能是 static 和 final 类型的,而抽象类的字段没有这种限制。 接口的成员只能是 public 的,而抽象类的成员可以有多种访问权限。