Java抽象类和接口
抽象类
抽象类的定义格式:
抽象类的特征:
1.抽象类不能被实例化,也就是不能用new关键字去产生对象。
2.抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象的。
3.构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
4.抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
抽象方法定义格式:
抽象方法特征:
1.抽象方法没有方法体,不需要花括号。
2.抽象方法必须存在于抽象类中
3.子类继承父类时,必须重写父类所有的抽象方法
接口
接口(interface) 就是方法定义和常量值的集合,是一种特殊的抽象类如果抽象类的所有方法都是抽象的,就可以用接口来实现。接口在语法上有些类似于类,它定义了若干各抽象方法和常量,形成了一个属性的集合,该属性集合通常对应某一种功能,实现类似于多重继承的功能。
接口的定义格式:
实现接口的语法格式:
注意:
1.当类实现接口的时候,该类要实现接口中所有的抽象方法。否则,该类必须声明为抽象的类。
2.Java中允许一个类实现多个接口,从而也解决了Java类单一继承问题。
接口的特征
1.在JDK1.8之前,接口中的方法都必须是抽象的,并且方法不能包会方法体。在调用抽象方法时,必须通过接口的实现类的对象才能调用实现方法。
2.从JDK1.8开始,接口中的方法除了包含抽象方法外,还包含默认方法和静态方法,默认方法和静态方法都可以有方法体,并且静态方法可以直接通过“接口.方法名”来调用。
3.当一个类实现接口时,需要实现接口中的所有抽象方法。如果不想实现接口中的抽象方法,则需要将该类声明为抽象类。
4.一个类可以通过implements 关键字同时实现多个接口,被实现的多个接口之间要用英文逗号(,)隔开。
5.一个类在继承一个类的同时还可以实现接口,此时,extends 关键字必須位于implements 关键字之前。具体示例如下:Class A extends B implements C //先继承类,再实现接口。
使用接口的主要目的
1.解决Java无法使用多继承的问题
2.制定标准的(制定规范)
3.可以协同开发(即便没有具体实现方法的内容,也可以暂时把方法调用过来),协同开发时可以提高开发效率(接口和实现类可以分开写)
4.易拓展(可以使用多态,一个接口类型的引用可以指向多个实现类实列)
欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位指点,在此表示感激不尽。文章持续更新中…