抽象类针对的是类,接口针对的是行为
抽象类:他就是抽象的,不是具体的。在类中没有包含足够的信息来描绘一个具体的对象,
这样的类称为抽象类。
抽象类和抽象方法需要被 abstract 关键字修饰
抽象类中的方法一般要求都是抽象方法,抽象方法没有方法体
当一个普通类继承一个抽象类后,这个普通类必须重写抽象类中的方法
抽象类是一个有抽象修饰符的类(abstract)
抽象类可以没有抽象方法
抽象方法必须写在抽象类中
抽象方法不能有方法体
抽象类不能实例化
当一个普通类继承抽象类,那么这个普通类必须重写抽象类中所有抽象方法
子类必须实现抽象类中的抽象方法,除非这个类也是
抽象类
什么是向上转型:一句话总结就是“父类引用指向子类对象
向上转型后的变化
🏀关于方法:父类引用可以调用子类和父类公用的方法(如果子类重写了父类的方法,则调用子类的方法)
,但子类特有的方法无法调用。
🏀关于属性: 父类引用可以调用父类的属性,不可以调用子类的属性
向上转型的作用
🐟减少一些重复性的代码
🐟对象实例化的时候可以根据不同需求实例化不同的对象
对于多态来说三要素:继承,重写,父类指向子类对象
final不能修饰抽象类和抽象方法
抽象类最大意义是被继承,而被final修饰
不能被继承 final和抽象类就像两个天敌一样
-----------------------------------------------------------------
接口就是标准和规范
接口里面只有:常量和未实现的方法
由于java中单继承的特性,导致一个类只能继承一个类,
但是可以实现一个或多个接口
实现接口,就要实现接口里面的方法
接口中可以包含变量和方法,变量被隐指为 public static final
方法则被隐指为public abstract
接口支持多继承(extends) 间接的解决了java 中不能被多继承的问题
面向接口编程