Momenta java开发面试题及参考答案

抽象类和接口的区别是什么?

抽象类是一种不能被实例化的类,它可以包含抽象方法和非抽象方法。抽象方法是只有方法签名没有方法体的方法,用于定义规范,要求子类必须实现这些抽象方法。抽象类还可以有成员变量、构造方法等,它的主要目的是为子类提供一个通用的模板,子类可以继承抽象类并且重写抽象方法来实现具体的行为。

例如,定义一个抽象类 “Animal”,它有一个抽象方法 “makeSound”,然后 “Dog” 类和 “Cat” 类继承 “Animal” 类并分别实现 “makeSound” 方法来发出不同的声音。

接口则是一种完全抽象的类型,它只包含常量和抽象方法(在 Java 8 之后还可以有默认方法和静态方法)。接口中的所有方法默认都是 public abstract 的,常量默认是 public static final 的。接口主要用于定义行为规范,一个类可以实现多个接口,从而具有多种行为规范。

比如定义一个 “Flyable” 接口,有 “fly” 方法,一个 “Bird” 类和 “Plane” 类都可以实现这个接口,表明它们都具有飞行的能力。

抽象类侧重于代码的复用,它的继承关系是单继承,即一个类只能继承一个抽象类。接口侧重于定义规范,一个类可以实现多个接口。抽象类中的成员可以有多种访问修饰符,而接口中的成员默认是公共的。在抽象类中可以有构造方法用于初始化,接口没有构造方法。

Java 修饰符的范围是怎样的?

Java 中的修饰符主要分为访问修饰符和非访问修饰符。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大模型大数据攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值