多态&抽象类&接口
多态:
1.多态定义:一个对象多种形态
2.要使用多态的前提
1.继承关系,实现关系
2.父类引用指向子类对象
Animal a = new Cat();
a 是父类的引用 new Cat 是子类的对象
3.方法的重写
3.多态访问的特点
1.变量
编译看父类,运行看父类
2.方法
编译看父类,运行看子类
4.多态的好处和弊端
1.好处:简化了代码,提高了代码的扩展性
2.弊端:不能调用子类特有的方法(因为多态编译看父类)
5.向上和向下转型
1.多态就是向上转型
2.让父类对象转化成子类,就是向下转型
思考:为什么要向下转型呢?
答:因为要使用子类特有的方法
在强转时,为了不报错 ,可以使用 instance 关键字 ,判断是否是同一个内容
useAnimal(Animal a){
if(a instance Cat){
Cat c = (Cat)a;
c.特有方法();
}
}
抽象类
1.什么是抽象类
用abstract 进行修饰的类就是一个抽象类
2.什么是抽象方法
1.用abstract 进行修饰的方法就是一个抽象方法
注意:抽象类可以有抽象方法,也可以没有
但是有抽象方法,那么类就必须是抽象类
2.该方法不能拥有方法体
3.抽象类的成员特点
1.抽象类的成员变量可以有
1.变量
2.常量
2.抽象类方法还能有有参构造和无参构造
问题:抽象类不能创建对象,那么为什么还能有构造方法呢?
3.抽象类中的方法
抽象类可以有抽象方法,也可以是普通方法
4.抽象类的特点
1.抽象类和抽象方法必须使用abstract关键字修饰
public abstract class 类名{}
public abstract 返回值类型 方法名();
2.抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类
3.抽象类不能实例化,但是可以通过多态的方式创建子类对象
4.抽象类的子类
要么重写抽象父类中所有的抽象方法
要么子类本身也是一个抽象类
接口
1.接口就是一系列的规范,举例:比如 插线板
2.接口的定义规则
2.1 interface 写法: public interface 接口名
3.接口的实现类
implements public class A implements 接口
4.接口的实现类需要去重写接口中的抽象方法法 ,如果不去重写,子类就是对应的抽象类
5.类和接口的关系
类和类的关系 --> 单继承或者是多重继承
类和接口的关系 --> 可以多实现 class A implements Inter1,Inter2
接口的和接口的关系 --> 可以多继承
面试题: java中支持多继承吗?
1.类和类不支持多继承
2.接口和接口支持多继承 interface A extends Inter1 ,Inter2{}
6.接口中成员变量的特点:是常量 用public static final 修饰的常量
7.接口中成员方法的特点:是抽象方法 是 public abstract 修饰的方法
注意:
抽象类是为了保证体系的完整
而接口是为了功能的扩展 |
|