一.关于抽象的概念

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.接口的私有方法使用