继承 抽象类 接口 多态 - 04

继承

继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。
好处:
1. 提高代码的复用性。
2. 类与类之间产生了关系,是多态的前提。
格式:
特点 - 成员变量:
成员变量不重名,访问是没有影响的。
成员变量重名,访问是有影响的。
使用格式:
 
特点 - 成员方法:
成员方法不重名,调用是没有影响的。
成员方法重名,调用是有影响的,方法重写 (Override)。
方法重写 :子类中出现与父类一模一样的方法时,会出现覆盖效果,也称为重写或者复写。声明不变,重新实现。
特点 - 构造方法:
1. 构造方法的名字是与类名一致的。所以子类是无法继承父类构造方法的。
2. 构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构造方法 中默认有一个 super() ,表示调用父类的构造方法,父类成员变量初始化后,才可以给子类使用。
 
super和this:
super :代表父类的存储空间标识(可以理解为父亲的引用)。
this :代表当前对象的引用(谁调用就代表谁)。
用法:
访问构造方法:
 
继承得特点:
1. Java只支持单继承,不支持多继承。
2. Java支持多层继承(继承体系)。
3. 子类和父类是一种相对的概念。
 

抽象类

我们把没有方法主体的方法称为抽象方法。Java语法规定,包含抽象方法的类就是抽象类。
抽象方法 : 没有方法体的方法。
抽象类:包含抽象方法的类。
抽象方法:
抽象类:
 
抽象得使用:
继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该父
类的抽象方法,否则,从最初的父类到最终的子类都不能创建对象,失去意义。
 

接口

接口,是Java语言中一种引用类型,是方法的集合,接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK 9)。
抽象方法:使用 abstract 关键字修饰,可以省略,没有方法体。该方法供子类实现使用
默认方法:使用 default 修饰,不可省略,供子类调用或者子类重写。
静态方法:使用 static 修饰,供接口直接调用。
私有方法:使用 private 修饰,供接口中的默认方法或者静态方法调用。
 
 
 
接口实现
1. 必须重写接口中所有抽象方法。
2. 继承了接口的默认方法,即可以直接调用,也可以重写
抽象方法的使用
默认方法的使用
 
静态方法的使用
私有方法的使用
私有方法:只有默认方法可以调用。
私有静态方法:默认方法和静态方法可以调用。
 
接口的多实现
而对于接口而言,一个类是可以实现多个接口的,这叫做接口的多实现。并且,一个类能继承一个父类,同时实现多个接口。
抽象方法:
接口中,有多个抽象方法时,实现类必须重写所有抽象方法。如果抽象方法有重名的,只需要重写一次。
 
默认方法:
接口中,有多个默认方法时,实现类都可继承使用。如果默认方法有重名的,必须重写一次。代码如下:
静态方法:
接口中,存在同名的静态方法并不会冲突,原因是只能通过各自接口名访问静态方法。
 
优先级得问题
当一个类,既继承一个父类,又实现若干个接口时,父类中的成员方法与接口中的默认方法重名,子类就近选择执行父类的成员方法。
 
接口得多继承
接口的继承使用 extends 关键字,子接口继承父接口的方法。如果父接口中的默认方法有重名的,那么子接口需要重写一次。
注:
接口中,无法定义成员变量,但是可以定义常量,其值不可以改变,默认使用public static final修饰。
接口中,没有构造方法,不能创建对象。
接口中,没有静态代码块。
 

多态

多态: 是指同一行为,具有多个不同表现形式。
多态体现的格式:
 
当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,执行的是子类重写后方法。
 
多态的好处
实际开发的过程中,父类类型作为方法形式参数,传递子类对象给方法,进行方法的调用,更能体现出多态的扩展性与便利。
 
不仅仅是替代,在扩展性方面,无论之后再多的子类出现,我们都不需要编写showXxxEat方法了,直接使用
showAnimalEat都可以完成。
所以,多态的好处,体现在,可以使程序编写的更简单,并有良好的扩展。
 
引用类型转换 - 向上转型
向上转型:多态本身是子类类型向父类类型向上转换的过程,这个过程是默认的。
引用类型转换 - 向下转型
向下转型:父类类型向子类类型向下转换的过程,这个过程是强制的。
转型的异常
为了避免ClassCastException的发生,Java提供了 instanceof 关键字,给引用变量做类型的校验:
 
 
案例
USB接口,包含开启功能、关闭功能
笔记本类,包含运行功能、关机功能、使用USB设备功能
鼠标类,要实现USB接口,并具备点击的方法
键盘类,要实现USB接口,具备敲击的方法
 
 
 
 
 
 
 
 
 
 
posted @ 2020-01-29 13:55  Alice的小屋  阅读(252)  评论(0编辑  收藏  举报