多态、抽象、接口

super注意点:

  1. super调用父类的构造方法,必须在构造方法的第一个

  2. super必须只能出现在子类的方法或者构造方法中!

  3. super和this不能同时调用构造方法

和this的比较:

代表的对象不同:

this:本身调用者这个对象

super:代表父类对象的应用

前提

this:没有继承也可以使用

super:只能在继承条件下才可以使用

构造方法

this():本类的构造

super():父类的构造

 

 

重写:需要有继承关系,子类重写父类的方法!

  1. 方法名必须相同

  2. 参数列表必须相同

  3. 修饰符:范围可以扩大但不能缩小: public>Protected>Default>private

  4. 抛出的异常:可以被缩小,但不能扩大

重写,子类的方法和父类必须要一致,方法体不同!

为什么需要重写:

  1. 父类的功能,子类不一定需要,或者不一定满足!

 

 

多态

  • 即同一方法可以根据发送对象的不同而采用多种不同的行为方式

  • 一个对象的实际类型是确定的,但可以指向对象的引用类型很多

 

  • 多态存在的条件

    • 有继承关系

    • 子类重写父类方法

    • 父类引用指向子类对象

 

  • 注意:多态是方法的多态,属性没有多态性

 

 

多态注意事项:

  1. 多态是方法的多态,属性没有多态

  2. 父类和子类有联系 否则就会引发类型转换异常!ClassCastException!

  3. 存在条件:继承关系,方法需要重写,父类引用指向子类对象!Father f1 = new Son();

     

    1. static方法,属于类,它不属于实例

    2. final常量

    3. private方法(以上三种都不能用于多态)

 

类型转换

  1. 父类引用指向子类的对象

  2. 把子类转换为父类,向上转型

  3. 把父类转换为子类,向下转型,强制转换

  4. 方便方法的调用,减少重复的代码

抽象类

  1. 不能new这个抽象类,只能靠子类去实现它

  2. 抽象类中可以写普通的方法

  3. 抽象方法必须在抽象类中

 

接口

  • 普通类:只有具体实现

  • 抽象类:具体实现和规范(抽象方法)都有

  • 接口:只有规范,自己无法写方法

接口的本质是契约

 

一个java类中可以有多个class类,但是只能有一个public class

 

 

异常

  • 检查性异常:最具代表性的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略

  • 运行时异常:运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略

  • 错误ERROR:错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译时也检查不到

  •  

 

 

posted @ 2022-03-18 11:22  jiangli001  阅读(27)  评论(0)    收藏  举报