【发布时间】:2018-10-05 06:39:07
【问题描述】:
为什么java make interface 只允许公共抽象方法?
为什么接口方法总是公开的,不允许受保护。抽象类中哪里可以实现受保护的抽象方法。
抽象类可以使访问权限较低的抽象方法对吗?接口是定义抽象列表的抽象数据类型。
有人可以向我解释一下为什么要这样实现吗?
public abstract class Animal{
protected abstract void printName();
}
---假设为单独的文件---
public class Lion extends Animal{
protected void printName(){}
}
【问题讨论】:
-
对于您的第一个问题,接口是类可能具有的行为的契约。他们说什么一个类可以做,但现在如何它会做。因此,所有方法接口都是抽象的。实际上,Java 8 中发生了这种变化,但总的来说我说的是真的。
-
@deHaar 问题相对不同
-
public因为接口旨在向外界公开行为。abstract因为不应该公开实现。 -
@TimBiegeleisen 您的意思是接口是类必须具有的行为契约?实现类应该实现接口的所有方法吧?我认为接口是从抽象类相对派生的,但现在它根本没有实现,纯粹是抽象的。但抽象类可以允许受保护的抽象方法。
标签: java