抽象与多态
一 . 重写和重载的区别:
1.重写必须继承,重载不用。
2.重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同。
3.重写的方法修饰符大于等于父类的方法,重载和修饰符无关。
4.重写不可以抛出父类没有抛出的一般异常,可以抛出运行时异常。
二 . 抽象类:
1.概念:没有包含足够的信息来描述一个具体对象的类,就称为抽象类
2.举例:形状为抽象类,菱形、圆为为具体类
3.除了不能实例化对象,其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
4.由于不能实例化对象,所以抽象类必须被继承,才能被使用。
5.用abstract定义抽象类
三 . 多态:
1.概念:同一个行为具有多个不同表现形式或形态的能力
2.举例:显示屏:对外都称作显示屏,但它有各种不同的尺寸
3.必要条件:继承、重写、父类引用指向子类对象,该引用只能调用父类中定义的方法和变量
4.好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。
5.当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,
再去调用子类的同名方法。
6.如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法
7.变量不能被重写,"重写"的概念只针对方法,如果在子类中"重写"了父类中的变量,那么在编译时会报错。