java面向对象精髓之抽象类和接口
1、抽象类
1、 抽象类是class前用abstract修饰的类,抽象方法是方法前用abstract修饰的方法;
2、抽象类里不一定有抽象方法(真没有就没必要写成抽象类了);只要有一个抽象方法,该类必须是抽象类;
3、抽象类不能实例化,但可以有构造器;
4、抽象类可以在创建匿名内部类时,new出来;(本质是实例化抽象类的实现子类)
2、接口
1、接口使用interface表示,替换class位置;
2、接口内所有方法都是抽象方法,且默认必须是public,可省略;
3、接口内如果要定义常量,必须是public static final;
4、只有一个方法的接口叫函数式接口,在接口上以@FunctionInterface 注解表示,可以用lambda表达式进行实现和对象创建;
5、接口也不能实例化,在创建匿名内部类时,new出来的本质是实现类和实例化合并成了一步。