CGBTN2110-DAY10总结复习
Posted 程序媛 泡泡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CGBTN2110-DAY10总结复习相关的知识,希望对你有一定的参考价值。
DAY10 复习
1.接口的特点:
- 我们使用interface关键字定义接口
- 我们使用implements关键字建立接口实现类与接口的实现关系
接口是父级,接口实现类是子级 - 接口实现类如果实现部分/不实现接口中的抽象方法,那么实现类是一个抽象类
接口实现类如果实现了接口所有的抽象方法,那么这个实现类是一个普通类 - 抽象类与接口都不可以实例化/创建对象
- 接口没有构造函数,实现类使用的super()是父类的无参构造
如果没有明确指定父类,super()代表的才是Object的无参构造 - 接口中都是静态常量,没有成员变量,因为会默认拼接public static final
- 接口中都是抽象方法,默认会拼接public abstract
故此:静态常量与抽象方法默认拼接的部分,可以省略不写 - 接口不是类!!!
- 接口是用来制定规则的【有哪些功能?方法有参数吗?有返回值吗?】
方法具体的实现交给接口的实现类去完成
2.接口与类的复杂关系
1. 类与类的关系
继承关系,只支持单继承
比如,A是子类 B是父类,A具备B所有的功能(除了父类的私有资源和构造方法)
子类如果要修改原有功能,需要重写(方法签名与父类一致 + 权限修饰符>=父类修饰符)
2. 类和接口的关系
实现关系.可以单实现,也可以多实现
class A implements B,C
其中A是实现类,B和C是接口,A拥有BC接口的所有功能,只是需要进行方法的重写,否则A就是抽象类
3. 接口与接口的关系
是继承关系,可以单继承,也可以多继承
interface A extends B,C
其中ABC都是接口,A是子接口,具有BC接口的所有功能(抽象方法)
class X implements A
X实现类需要重写ABC接口的所有方法,否则就是抽象类
class A extends B implements C,D
其中A是实现类,也是B的子类,同时拥有CD接口的所有功能
这时A需要重写CD接口里的所有抽象方法
4.接口与抽象类的区别
- 接口是一种用interface定义的类型
抽象类是一种用class定义的类型 - 接口中的方法都是抽象方法,还有默认方法与静态方法
抽象类中的方法不做限制 - 接口中的都是静态常量
抽象类中可以写普通的成员变量 - 接口没有构造方法,不可实例化
抽象类有构造方法,但是也不可以实例化 - 接口是先天设计的结果,抽象是后天重构的结果
- 接口可以多继承
抽象类只能单继承
3.内部类总结
- 内部类创建对象的格式:
外部类名.内部类名 对象名 = 外部类对象.内部类对象 - 根据内部类的位置不同,分为:
成员内部类(类里方法外)
局部内部类(方法里) - 内部类可以直接使用外部类的资源,外部类使用内部类资源时,
需要先创建内部类的对象,通过内部类对象来调用 - 成员内部类被private修饰后,需要在外部类创建公共方法,间接访问内部类的资源
- 静态内部类不需要先创建外部类对象,
而是要先通过外部类的类名找到内部类,再创建内部类的对象 - 如果静态内部类有静态资源,可以不创建一个对象,就通过
外部类名.内部类名.静态资源名 的链式加载的方式,使用资源 - 直接创建外部类对象,调用局部内部类所处的方法时,并不会触发内部类的功能
需要在内部类所处的方法中,创建内部类对象,并调用其功能,功能才会被触发 - 匿名内部类没有名字,通常与匿名对象结合在一起使用
- 如果想要多次使用实现后的功能,还是要创建之前的普通对象
匿名对象只能使用一次,一次只能调用一个功能
匿名内部类其实就是充当了实现类的功能,去实现未实现的方法,只是没有名字而已
内部类详细笔记
以上是关于CGBTN2110-DAY10总结复习的主要内容,如果未能解决你的问题,请参考以下文章