这篇文章主要是简单总结一下Java中的类和接口的一些内容。
类
类是具有相同属性和服务的一组对象的集合。为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务(功能)两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,应该有一个类名并包括属性说明和服务说明两个主要部分。
接口
接口(Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合(接口里面都是抽象方法),接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
类和类之间
- 类和类之间是继承关系,而且只允许单根继承,子类继承父类后,可以使用父类除封装之外的所有功能。
- 子类可以修改父类的原有功能,会发生方法重写。
- 方法重写需要满足方法头要相同,方法要用@Override标识。
- 重写改变的是方法体,是把子类的方法体改成新的业务
接口和接口之间
- 子接口可以使用负接口的所有功能。
- 接口是为了突破java单继承的局限性而来的。
- 接口里没有构造方法,没有变量只有常量,jdk1.8后可以有default或者static的普通方法。
- 接口可以多继承,多实现,还可以在继承的同时多实现(先继承再实现)。
类和接口之间
- 类和接口是实现关系,而且允许多实现。
- 当实现类实现了接口后,需要重写接口里的所有方法,否则就包含了抽象方法,成为了一个抽象类。
抽象类
- 抽象类是一个特殊的类,抽象类里可以有抽象方法,也可以有普通方法。
- 抽象类里有构造方法,用于给子类创建对象。
- 抽象类里有变量,也有常量(常量时需要自己添加public static final 修饰)。
- 抽象类里可以都是抽象方法,也可以都是普通方法(如果都是普通方法却还被修饰成了抽象类,目的是为了不让外界new)。
- 如果一个子类继承了一个抽象类,没有重写抽象类里的方法或者没有全部重写的话,子类也是一个抽象类。