首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包内包Java

包内包Java
EN

Stack Overflow用户
提问于 2018-01-25 16:02:29
回答 2查看 2.7K关注 0票数 0

给我的说明是:使用void ()方法编写一个名为Playable的接口;让这个接口放在一个名为music.Write的包中,这是一个名为Veena的类,它实现了可玩接口。让这个类放在一个包music.string中。

我已经创建了这个接口,并将其打包如下:

代码语言:javascript
复制
package music;

interface Playable {
    public void play();
}

然后,我创建了下面的下一个类:

代码语言:javascript
复制
package music.string;
import music.Playable;

public class Veena implements Playable {
    public void play() { System.out.println("Veena plays"); }
}

我已经玩过这个游戏了,到目前为止,我要么没有命名它在"music.string“中的包,要么我收到了一个错误,因为可播放不是公共的,不能在接口之外使用。我如何在我的类Veena中导入和实现可玩性,同时在"music.string“中打包Veena?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-25 16:07:48

使接口public

代码语言:javascript
复制
public interface Playable {
     void play();
}

package-private类/接口只能由属于的类/接口引用,这些类/接口与包完全相同。

票数 1
EN

Stack Overflow用户

发布于 2018-01-25 16:14:43

如果没有定义公共程序包,则无法访问来自不同包的接口。如果您想保持您的接口默认值,您必须将您的类移动到同一个包中,但是由于您需要将您的接口保持在单独的包中(这也是一个很好的设计),所以您的接口必须公开。

代码语言:javascript
复制
package music;

public interface Playable {
   void play();
}   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48447148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档