多态:事物的多种形态
前提:继承 方法重写 父类引用指向子类对象
多态中成员访问的特点:
成员变量:编译时看左边,运行时看左边
成员方法:编译时看左边,运行时看右边
静态成员:编译时看左边,运行时看左边
多态的好处:提高代码的可维护性 提高代码的扩展性
instanceof:判断前边对象是否属于后面的类型,用于类型转换不知道要转成哪个类型,需要用到条件判定
抽象类:
特点:abstract关键字修饰类
abstract class 类名{}
public abstract void 方法名(){}
抽象类中不一定要有抽象方法,但有抽象方法的类必须是抽象类。
抽象类不能实例化,抽象类型的方法强制子类重写抽象方法。
问:abstract不能和那些关键字一起使用?
final static private
接口
概念:interface 接口名{}
不能被实例化,必须要子类重写接口中所有的方法
类实现接口:class 子类名 implements 接口名{}
类与类、类与接口、接口与接口的关系?
类与类:继承关系,只能单继承
类与接口:实现关系,可以单实现,也可以多实现
接口与接口:继承关系,单继承或者多继承
抽象类与接口的区别?
成员方法:抽象类中可以抽象方法,也可以实现方法,接口中只能是抽象方法
成员变量:接口中只能是常量
构造方法:抽象类中有构造方法,接口中没有
继承:抽象类只能单继承,接口可以多实现或多继承