day09
异常
try{} catch{}finally
实现
implements
笔记:
-
类与类的关系
继承关系: 只支持单继承
class A extends B
A是子类
B是父类
子类具备父类的所有功能
1. 子类不能使用父类的私有资源
2. 构造方法不能继承
3. 子类如果想更改父类的功能,可以重写(两同两小一大)
注意: 方法名+ 参数列表-- 方法签名
两同: 方法名 参数类型 参数名
两小: 抛出异常要小于或者等于父类, 返回值类型要小于或者等于父类
一大: 修饰权限符要大于或者等于父类 -
类与接口的关系
实现关系: 既可以单实现,也可以多实现
如: class A implements Inter{}
class A implements Inter1,Inter2{}
A是实现类,Inter1, Inter2,Inter3是被实现的接口
1. 实现类去实现接口必须实现接口中的所有抽象方法,
2. 如果有任一没有实现,就得声明成抽象子类
3. 创建实现类对象时,一般使用实现类对象,而不是多态对象,因为效果一样 -
接口与接口的关系
继承关系,既可以单继承,又可以多继承
如: interface A extends Inter{}
interface A extends Inter1,Inter2{}
A是子接口,Inter1, Inter2,Inter3是被继承的父接口
注意接口A2的实现类需要实现接口A2继承Inter2和Inter3的所有的抽象方法
4.抽象类与接口的区别?
- 抽象类是一个特殊类,这个类使用class定义,特殊在这个类可以定义在没有方法体的方法(抽象方法)
- 接口可以理解成一个特殊的抽象类,特殊在接口中,所有的方法都是抽象方法.但注意接口不是类,用interface 定义
- 抽象类中有构造方法,为了给子类创建对象时调用,
- 接口中是没有构造方法的,子类调用的是父类的构造方法
- 接口可以多继承,但抽象类可以单继承
- 抽象类可以定义普通的成员变量,但接口只能定义静态常量
- 接口与抽象类均不可以实例化/创建对象
- 抽象是后天重构的结果,接口是先天设计的结果