一、抽象类

1.关键字:abstract
2.抽象方法:只有方法的名字,没有方法的实现。
3.继承了抽象类的子类必须实现该抽象类的抽象方法,除非该子类也是抽象类,那么就由下一个继承的非抽象类来实现。
4.java的类是单继承的,但是接口可以多继承。
5.抽象类的特点

  • 不能new这个抽象类,不能被实例化,只能靠子类去实现它:约束!
  • 抽象类中可以写普通方法,但是抽象方法必须在抽象类中
  • 本质其实就是抽象的抽象:是一个约束
  • 抽象类有构造器,也可以有静态方法
  • 抽象类存在的意义:提高开发效率

二、接口

1.普通类:只有方法的具体实现
2.抽象类:具体实现和规范(抽象方法)都有!
3.接口:只有规范自己无法写方法。即专业的约束,约束和实现分离:面向接口编程。
4.接口就是规范,定义的是一组规则,接口的本质就是契约,指定之后大家来遵守
5.接口的精髓,就是对对象的抽象,最能体现抽象的就是接口。
6.接口定义的关键字是:interface
7.举例:

  • 接口中的所有定义其实都是抽象的 public abstract ,如果省略不写,默认也是抽象的
  • 接口中定义的属性都是常量;public static final;不过一般很少用
  • 接口都需要有实现类,一般实现类会用Impl来命名
  • 类可以实现接口,通过implements关键字
  • 实现了接口的类,就需要重写接口中的所有方法,快捷键:alt+insert
  • 利用接口实现(伪)多继承,接口和类有区别,类里面有方法的实现,接口里面只有方法的定义。
  • 主要是要锻炼抽象的思维,架构师
    8.总结接口的作用:
  • 约束
  • 定义一些方法,让不同的人来实现
  • 方法是默认public abstract
  • 常量是默认public static final
  • 接口不能实例化,接口中没有构造方法
  • implements可以实现多个接口
  • 必须重写接口中的方法

三、内部类

1.在一个类中定义了另一个类

2.通过外部类来实例化内部类

3.内部类可以直接访问外部类的一些私有的属性和方法

java内部类实例化 不需要new java内部类可以是抽象的么_开发语言


补充:一个java文件里面只能有一个public类,但是可以有多个类

局部内部类

在方法里面写的类叫做局部内部类。

java内部类实例化 不需要new java内部类可以是抽象的么_java内部类实例化 不需要new_02


匿名对象

匿名对象不用把对象(实例)保存到变量中

如:

java内部类实例化 不需要new java内部类可以是抽象的么_java内部类实例化 不需要new_03


匿名内部类

java内部类实例化 不需要new java内部类可以是抽象的么_java_04

java内部类实例化 不需要new java内部类可以是抽象的么_开发语言_05


静态内部类

在内部类定义的时候加上static关键字

java内部类实例化 不需要new java内部类可以是抽象的么_抽象类_06