类与接口面试

本文探讨了Java中抽象类与接口的异同,抽象类作为类的模板设计,接口则作为行为的规范。两者都不能实例化,位于继承层次顶端。Java8后接口可包含默认方法。选择时,行为模型推荐使用接口,通用功能选择抽象类。此外,还介绍了普通类与抽象类的区别,以及new关键字在创建对象时的作用。
摘要由CSDN通过智能技术生成

java面试小蜜小程序,随时随地刷题 (:

在这里插入图片描述

抽象类和接口的对比

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

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

相同点

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

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

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

不同点
在这里插入图片描述
备注:Java8中接口中引入默认方法和静态方法,以此来减少抽象类和接口之间 的差异。

现在,我们可以为接口提供默认实现的方法了,并且不用强制子类来实现它。 接口和抽象类各有优缺

点,在接口和抽象类的选择上,必须遵守这样一个原则:

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

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

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

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

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

抽象类能使用 final 修饰吗?

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

盾,所以 final 不能修饰抽象类

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

new关键字,new创建对象实例(对象实例在堆内存中),对象引用指向对象实 例(对象引用存放在栈

内存中)。一个对象引用可以指向0个或1个对象(一根 绳子可以不系气球,也可以系一个气球);一个

对象可以有n个引用指向它(可以 用n条绳子系住一个气球)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值