欢迎光临散文网 会员登陆 & 注册

类与接口

2023-06-10 21:21 作者:小凡-_  | 我要投稿

抽象类和接口的对比 

抽象类是用来捕捉子类的通用特性的。接口是抽象方法的集合。

从设计层面来说,抽象类是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。 

相同点

接口和抽象类都不能实例化 

都位于继承的顶端,用于被其他实现或继承 

都包含抽象方法,其子类都必须覆写这些抽象方法 

不同点


备注:Java8中接口中引入默认方法和静态方法,以此来减少抽象类和接口之间 的差异。

现在,我们可以为接口提供默认实现的方法了,并且不用强制子类来实现它。 接口和抽象类各有优缺 点,在接口和抽象类的选择上,必须遵守这样一个原则:

行为模型应该总是通过接口而不是抽象类定义,所以通常是优先选用接口,尽量少用抽象类。

选择抽象类的时候通常是如下情况:需要定义子类的行为,又要为子类提供通用 的功能。

普通类和抽象类有哪些区别?

普通类不能包含抽象方法,抽象类可以包含抽象方法。 

抽象类不能直接实例化,普通类可以直接实例化。

抽象类能使用 final 修饰吗?

不能,定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承, 这样彼此就会产生矛 盾,所以 final 不能修饰抽象类

创建一个对象用什么关键字?对象实例与对象引用有何不同?

new关键字,new创建对象实例(对象实例在堆内存中),对象引用指向对象实 例(对象引用存放在栈 内存中)。一个对象引用可以指向0个或1个对象(一根 绳子可以不系气球,也可以系一个气球);一个 对象可以有n个引用指向它(可以 用n条绳子系住一个气球)


类与接口的评论 (共 条)

分享到微博请遵守国家法律