面向对象-多态
一.接口
书写规范:I 类名
1.接口的基本语法:
【直接更改类方法的class】
public internface 接口名字{
}
2.接口里面可以写那些内容:
2.1成员变量:
默认是由public static final 修饰的
2.2抽象方法:
默认是由public abstract修饰的
【工作中大多数把public abstract省略了】 例如:void pay();
jdk1.8才出的特性---
2.3静态方法:
由static修饰的方法;
例如:public static void show() { }
2.4默认方法:
由default修饰的方法
例如:public default void show() { }
3.注意事项:
3.1接口与接口之间可以继承,并且支持多继承
3.2接口里面没有构造方法,所以接口不能去创建对象
3.3面试题:请说说接口和抽象类的区别?抽象类可以使用构造方法
4.接口与类的关系【implements】
--------接口的作用其实是用来定义标准-------
4.1.书写规范:
Impl
4.2.实现接口语法:
public class 类名 implements 接口名{
}
4.3.接口实现的注意事项:
5.1 一个类可以实现多个接口,覆写接口里面的所有方法
5.2一个类可以同时继承一个类,并且实现多个接口,但是要先继承后实现
5.3抽象类实现接口,可以灵活的去选择实现哪些接口,不实现哪些接口,因为抽象类里面可以允许写抽象方法

没有覆写的抽象方法
二.多态
1.官方概念:
【编译时和运行时类型不一致的情况叫做多态】
坊间说法:
使用父类类型接受子类型对象,使用接口接收实现类对象
一般写法:
2.多态写法:
【编译时看左边,运行时看右边】
3.注意事项:
3.1不能直接去使用子类特有的属性方法
3.2即使是多态的写法依然是优先找子类本身,子类没有再去找父类
4.多态体现在什么地方:
4.1在方法的形参列表 使用父类类型接收子类对象
4.2在方法的返回值 方法的返回值类型是父类类型,return语句返回的是子类对象
引用数据类型
小-------> 大就是多态
大 ------->小 强制转换;-----因为多态的写法不能使用子类特有的属性和方法
小的数据类型 变量名 = (小的数据类型) 大的数据类型