一. 抽象类
1,概念由abstract修饰的类称为抽象类定义格式如下:
2.有上图可知抽象类中可以有抽象方法(但是抽象方法不能有private 和 final和static修饰),也可以有已经实现的方法,抽象类还是类,可以拥有类的所有成员。
3抽象类不可以实例化
4.一个类继承于抽象类那么这个类必须实现抽象类中所有抽象方法,除非他本身也被申明为抽象类这样他可以不用实现抽象类中的抽象方法。
5.抽象类可继承非抽象类,抽象类也可以实现接口。
6.抽象类的应用场景,当一个类中的方法不确定时,那么可以把这个类申明为抽象类。
二. 接口的注意细节
1,接口的是由interface关键字申明的,接口的定义格式如下:(接口的修饰符和类的一样)
2.接口中的变量都是 默认都是以public static final 修饰的,不可以被改变,就是常量。接口中的方法都是用public修饰
2.jdk7以前,接口中的方法都是抽象方法,在jdk8以后,接口中可以有实现的方法,但是要用default修饰,在jdk9以后接口中可以有私有方法。
3.接口与类之间是实现关系,接口与接口之间是继承关系,可以多继承,也可以多继承。一个类可以同时实现多个接口(一个类实现接口时,那么这个类就要实现接口中所有的抽象方法,除非他自己也申明为抽象类,这样就不用实现接口中的抽象方法)
4.如果一个类实现了多个接口,且多个接口中有同名的默认方法,那么这个类就必须实现这个默认方法(在实现这个方法的同时还要把default关键字去掉),除非它是抽象类
5.接口不能被实例化 接口中的抽象方法不用abstract修饰。(就是可以省略不写)
6.接口中的属性都是静态的常量
7.一个类实现多个接口时,且接口中有多个同名的抽象方法,那么这个类只用实现一个就行。
8.接口的应用场景,当子类继承父类时,那么子类将拥有父类的大部分方法和属性,此时子类想要扩展功能,那么就可以实现对应的接口。来提高自己的能力。
9.接口的多态(接口的引用可以指向实现类的对象)此时 传递接口类型的参数时,那么参数可以传入实现的类型或者为该类的子类型。