抽象类和抽象方法的注意事项:
抽象类不能实例化
抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
可以有构造方法
抽象类的子类:
要么重写抽象类中的所有抽象方法
要么是抽象类
抽象类和抽象方法的意义:
是开发的代码更加统一
接口:
接口的定义和使用:
接口用关键字interface来定义:
public interface 接口名{}
接口不能实例化
接口和类之间是实现关系,通过implements关键字表示:
public class 类名 implements 接口名{}
接口的子类(实现类)
要么重写接口中的所有抽象方法
要么是抽象类
注意1:接口和类的实现关系,可以单实现,也可以多实现。
public class 类名 implements 接口1,接口2{}
注意2:实现类还可以在继承一个类的同时实现多个接口:
public class 类名 extends 父类 implements 接口1,接口2{}
接口中成员的特点:
成员变量:
只能是常量
默认修饰符:public static final
构造方法:
没有
成员方法:
只能是抽象方法
默认修饰符:public abstract
接口和类之间的关系:
类和类的关系:
继承关系,只能单继承,不能多继承,但是可以多层继承
类和接口的关系:
实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口
接口和接口的关系:
继承关系,可以单继承,也可以多继承
总结:
1、JDK7以前:接口中只能定义抽象方法。
2、JDK8:接口中可以定义有方法体的方法。(默认、静态)
3、JDK9:接口中可以定义私有方法。
4、私有方法分为两种:普通的私有方法、静态的私有方法
1、接口代表规则,是行为的抽象。想要让哪个类拥有一个行为,就让这个类实现对应的接口就可以了。
2、当一个方法的参数是接口时,可以传递接口所有的实现类的对象,这种方式称之为接口多态
内部类:
什么是内部类:
在一个类的里面,在定义一个类。
什么时候用到内部类:
b类表示的事物是a类的一部分,且b单独存在没有意义。
内部类的分类:
成员内部类:
写在成员位置的,属于外部类的成员。
成员内部类可以被一些修饰符所修饰