邹瑞2020929
总结
多态
一个特定类型的变量,可以引用多个不同类型的对象,并且能自动调用引用对象的方法。也就是 说根据引用对象的不同,响应不同的操作。
方法重写是多态的基础
如:Pet是父类;Dog为子类
Pet pet;
pet = new Dog();
pet.toHospital();
pet = new Cat();
pet.toHospital();
转型
向上转型
由子类类型转换成父类类型,称为向上转型。父类引用指向子类对象
Pet pet = new Dog();
多态就是说一个父类可能有多个子类,每个子类都重写了父类的方法(每个子类都有不同的方法实 现),当父类调用方法时,父类引用指向的是哪个子类,就执行哪个子类的方法。形成了父类引用调用 相同的方法时,有不同的实现。
- 父类引用只能调用父类中有的方法(子类继承自父类的方法/重 的方法)
- 父类引用不能调用子类扩展的方法(独有的方法)
向下转型
由父类类型转换成子类类型,称为向下转型。必须要进行强制类型转换。 注意:首先要判断是否属于要强转的类型( instanceof ),如果不属于会报 java.lang.ClassCastException
实现多态的条件
- 要有继承关系
- 父类引用指向子类对象(向上转型)
- 子类要重写父类的方法
多态的特点
- 可替代性
- 可扩充性
- 接口性
- 灵活性
- 简化性
抽象类以及抽象方法
在 java 中,被 abstract 关键字修饰的类叫做抽象类,被 abstract 关键字修饰的方法叫做抽象方法。 抽象方法是没有具体实现(没有方法体)的。 abstract 不能和 final 一起使用。 抽象类/抽象方法作用就是定义规范
有抽象方法的类一定是抽象类,而抽象类可以没有抽象方法
接口
约定好规范,然后按照规范来做。接口就是定义规范。 java 中的接口作用和生活中类似,它提供一种约定,使实现接口的类在形式上保持一致。 抽象类中可以有普通方法而接口中的方法都是抽象的,也可以说接口是一个特殊的 抽象类 ,接口不能被 实例化,而且没有构造方法。
[修饰符] interface 接口名{
//接口成员
}
接口中的方法默认是抽象方法,所以可以省略 abstract 修饰符 接口中的方法默认都是 public 的,所以可以省略 public
接口中的变量只能是静态常量( static final ),所以可以省略 static final ,静态常量在定义时就要 赋值,且不可变。
使用接口
接口使用和抽象类一样,都是通过子类。子类通过 implements 关键字实现接口,实现接口就必须实现 接口中的抽象方法
- 一个类可以实现多个接口,接口之间使用 , 隔开
- 接口的实现类中,可以有普通方法
- 实现的方法必须是 public 的
java 中继承是单继承,使用 extends 关键字;但是一个类可以实现多个接口,使用 implements ,多个 接口之间用 , 隔开。
心得
临近放假,有点静不下心,准备假期时间把这两天的好好疏通一下。
近期评论