Java9.20
this和Super的用法
this
1、对自身的直接引用
表示对自身的直接引用
2、区分重名
当出现重名时,为防止出错,使用this表示对当前对象的引用
3、引用构造函数
调用本类中另一种形式的构造函数
Super
super即超类,指向的是离自己最近的一个父类
它的用法也分三种
1、直接引用
表示对当前对象的父类的直接引用,以便引用父类下的成员
2、避免重名问题
当子类成员名与父类成员名重名,用super表示引用的为父类,以示区别
3、引用构造函数
用于调用父类中的构造函数
重写:方法名相同 参数列表相同 父子类
重载: 方法名一样 参数列表不一样 同一个类
多态
1.存在继承
2.父类引用指向子类对象 Transport t = new Car();
多态实现的3种方法
1.使用普通类实现:若父类需要完成一些功能,则使用普通类作为父类。
2.使用抽象类实现:父类不需要独立的功能时,使用。
3.使用接口:当父类与子类的关系不满足is a 时,使用。
接口
接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。接口是解决Java无法使用多继承的一种手段,但是接口在实际中更多的作用是制定标准的。或者我们可以直接把接口理解为100%的抽象类,既接口中的方法必须全部是抽象方法
接口的特点:就像一个类一样,一个接口也能够拥有方法和属性,但是在接口中声明的方法默认是抽象的。(即只有方法标识符,而没有方法体)。
1.接口指明了一个类必须要做什么和不能做什么
2.如果一个类实现了一个接口中要求的所有的方法,然而没有提供方法体而仅仅只有方法标识,那么这个类一定是一个抽象类。
3.抽象方法只能存在于抽象类或者接口中,但抽象类中却能存在非抽象方法,即有方法体的方法。接口是百分之百的抽象类
4.一个JAVA库中接口的例子是:Comparator 接口,这个接口代表了“能够进行比较”这种能力,任何类只要实现了这个Comparator接口的话,这个类也具备了“比较”这种能力,那么就可以用来进行排序操作了。
5.接口可以包括:
1.常量 无法改变,有值的量
语法:public static final 数据类型 常量名;
2.抽象方法
3.默认方法 相当于为每一个实现类添加了功能,解决了接口升级的问题
4.静态方法 只能使用接口名调用
注意事项
一个类可用有多个接口。
如果实现类所实现的多个接口中存在重复的抽象方法,那么只需要 覆盖重写一次就可以。
如果实现类没有覆盖重写所有抽象方法,那么实现类一定是一个抽象方法
如果实现类 实现多个接口中存在默认方法 那么实现类一定要对冲突的默认方法覆盖重写