Vis*_*hnu 32 java interface public-method
当我实现一个interface方法时,我不得不把它变成一个public方法.
我们可能会default遇到我们想要使用的情况(如同在相同包中访问的情况)或protected.
有人可以解释这个限制背后的原因吗?
Pét*_*rök 54
接口用于定义类型的公共 API - 而不仅仅是它的实现.因此,您在接口中定义的任何方法(或静态成员)都是定义的public.
由于接口不能包含任何具体实现,因此无法从内部调用任何成员方法.并且声明这样的方法但是将它们调用到子类或完全不相关的客户端将意味着你的类型定义是不完整和脆弱的.这就是为什么如果您需要定义受保护或包访问成员,您可以在抽象类(也可能包含实现)中这样做.
npi*_*nti 10
也许这会提供一些答案.
据我所知,您可以使用interfaces代码外部的人员与代码进行交互.为此,您需要定义方法public.
如果您想强制某人覆盖一组给定的私有方法,您可能希望使用一系列抽象受保护方法声明一个抽象类.