2020.3.23----java接口基础以及多态
***一.接口的定义方法:***-----P172
interface --广为人知
二.接口中抽象方法定义:
在认可版本的java中,接口都能定义抽象方法,格式:
public abstract 返回值类型 方法名称(参数列表)
注意事项:
- 1。接口当中的抽吸方法,修饰符必须是两个固定的关键字 public avstract
- 这两个关键字修饰符,可以选择性地省略,
- 方法的三要素可以随意定义
三.接口中抽象方法的使用 - 1.接口不能直接使用,必须有一个“实现类”来“实现”该接口,格式; public class 实现类名称 implements 接口名称{ //… }
2.接口的实现类必须覆盖重写(实现)接口汇总的所有的抽象方法
3.创建实现类的对象, 进行使用
注意事项:如果事项类并没有覆盖重写接口总所有的抽象方法,那么这个实现类就是一个抽象类
四:接口中默认方法的定义
- 格式: public default 返回值类型 方法名称(参数列表){ 方法体} 备注:接口当中的默认方法,可以解决接口升级的问题
- 1,接口的默认方法的使用:可以铜鼓哦接口实现类对象,直接调用,2.也可以被接口实现类进行覆盖重写
-
五:接口中静态方法的定义:
1.从java8开始,接口当中允许定义静态方法
格式:
public static 返回值类型 方法名称(参数列表){方法体 }
2.接口中静态方法的使用
六:接口中私有方法
1.解决问题:可以解决当我们需要抽取一个公有方法,用来解决两个默认方法之间重复代码的问题。这个共有方法不应该让实现类使用,应该是私有化的
2.私有方法的定义格式:
默认私有方法和静态私有方法的使用方法和之前的一样
七:接口中常量方法的定义和使用
七:接口之间的多继承:
注意:抽象方法重复没关系,但是默认方法如果重复就需要使用覆盖重写----P184
多态
多态:父类引用指向子类对象
格式:父类名称 对象名=new 子类名称();
或者:接口名称 对象名=new 实心类名称();
1.访问成员变量的方法:
直接通过对象名称访问成员变量:看等号左边是谁,优先用谁,没有则向上找。
间接通过成员方法访问成员变量:看该方法属于谁,优先用谁,没有则向上找
2.多态中成员方法的访问规则是:
看new的是谁就优先用谁,没有则向上找
口诀;成员变量:编译看左边,运行还看左边
成员方法:编译看左边,运行看右边