一.关于抽象的概念
1.判断
如果父类中的方法不知道如何用{}进行实现,那么就是一个抽象类,抽象方法必须在抽象类里面
2.定义抽象方法:
在public 后加上abstarct,去掉{},直到;结束
3.使用抽象类和方法:
不能直接创建抽象类对象
必须用子类继承抽象类
子类必须覆盖重写父类所有抽象方法:去掉abstract,补上{}
创建子类对象进行使用
4.注意事项:抽象类与抽象方法的关系
子类必须重写抽象类,否则他也得变成抽象类
二.接口(interface)
1.接口就是类们的公共规范标准
接口的重要组成部分是抽象类(从Java7就能定义常量和抽象方法了)
interface字节码文件还是.class文件
abstract定义时必须有两个关键字 修饰符public abstract,可以视情况省略其中之一,但是目前尽量不省略为好
接口中的抽象类中的三要素可以视情况定义
2.创建实现类。使用步骤:
1)public class 实现类 implements 接口名称{}
2)实现类必须覆盖重写接口中的抽象方法(去掉abstract,加上{}),除非自己也是抽象类,因为不管它就会被继承,但抽象方法只能存在于抽象类之中。
3)创建实现类的对象,而不是接口对象
3.默认方法
1)存在意义:default方法可以实现接口升级,因为每个接口都需要重写抽象方法,那么如果有新的类规范(若是抽象方法),所以实现的时候就很麻烦。
故需要默认方法的存在。
注意:后期拼接函数模型常用
子父类和接口实现中new的是谁.的就是谁的方法。
2)方法:public default 返回值类型 方法名称 (参数列表){}
实现默认方法再调用实现类时可以直接使用
接口的默认方法可以被覆盖重写!
4.接口中static方法定义和使用
存在意义:1. 属于类级别的,所有不需要创建对象就可以直接使用;
2. 全局唯一,内存中唯一,静态变量可以唯一标识某些状态;
3. 初始化在类加载时候,常驻在内存中,调用快捷方便(绝对比你创建一个类后再调用它的非静态方法方便吧!);
1)public static 返回值类型 /方法名称 (参数列表){}
2)把abstract或者default换成static即可
3)直接.是错误的,因为一个类可以实现多个接口
正确:接口名称.静态方法名()静态是属于类的!
5.接口中的私有方法
1)存在原因:为了解决方法重复问题
2)使用方法:普通与静态私有方法
private 返回值类型 方法名称(参数列表)
private static 返回值类型 方法名称(参数列表)
5.接口的私有方法使用