Java教程

java面向对象-抽象类、接口

本文主要是介绍java面向对象-抽象类、接口,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

有时候定义父类时,只是知道子类包含方法,但无法准确知道子类如何实现这些方法 ,就需要定义一个抽象类。

方法功能声明相同,但方法功能主体不同。那么这时也可以抽取,但只抽取方法声明,不抽取方法主体。那么此方法就是一个抽象方法。

当定义了抽象函数的类也必须被abstract关键字修饰,被abstract关键字修饰的类是抽象类。

定义格式:

  

抽象类定义
abstract class 类名{

}

抽象方法定义
public abstract 返回值类型 方法名(参数){
}

 

抽象类的特点:

抽象类和抽象方法都需要被abstract修饰,抽象方法一定要定义在抽象类中。

抽象类不可以直接创建对象,调用抽象方法没有意义。

只有覆盖抽象类中所有抽象方法后,子类才可以创建对象,否则子类还是抽象类

继承抽象类是面对共性类型操作会更简单

 

抽象类的细节问题

抽象类一定是一个父类

抽象类的子类可以不定义抽象方法

抽象关键字不可以和private(私有的方法子类无法继承)、final常量无法改变、static静态,同时使用。

 

接口:

接口是功能的集合,是比抽象类更抽象的“类”

接口只描述应该具备的方法,并没有具体实现,具体的实现由接口的实现类完成,这样将功能的定义与实现分离,优化了程序设计。

一切事物皆有功能,即一切事物皆有接口。

定义:

接口定义需要使用interface关键字代替class

接口中方法均为公共访问的抽象方法,接口中无法定义普通的成员变量。

 

类实现接口

创建类使用关键字implement,在类实现接口后,该类就会将接口中的抽象方法继承过来,该类需要重写抽象方法。

 

接口中成员的特点

接口中可以定义变量,必须有固定的修饰符,final常量

接口中可以定义方法,固定修饰符abstract

接口不能创建对象

子类必须覆盖接口中所有抽象方法后,子类才可以实例化,否则就是抽象类。

 

接口的多实现:

接口之间可以同时继承和实现接口,避免了单继承的局限性

接口的多继承:

多个接口之间可以使用extends继承

 

接口在开发中的好处:

接口的出现扩展了功能

接口就是暴露出来的规则

接口出现降低了耦合性,实现了解耦

 

 

接口和抽象的区别:

抽象类为部分方法提供实现,避免子类重复实现,提高代码重用性;接口只能包含抽象方法。

一个类只能继承一个直接父类,却可以实现多个接口;

抽象类是这个事物中应该具备的内容,继承体系是  is a 关系

接口是这个事物额外的内容,继承体系是 like a 关系

二者优先选用接口,需要定义子类行为,又要为子类提供共性功能时才选用抽象类。

 

这篇关于java面向对象-抽象类、接口的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!