这很难解释,但显示一段
Ruby代码很简单:
有两个实现方法的模块:
module Foo def one print "ONE!" end end module Bar def two print "TWO!" end end
有一个包含它们的类:
class Test include Foo include Bar end
据我所知,Java中没有这样的东西.关闭的概念是:
多重继承
这不受Java支持.
接口
他们是方法合同 – 没有实施.你的类Test需要实现方法本身,这就是我想要避免的.只是为了不写两次相同的代码(我有其他几个类,其中一些也可能想要实现这些方法).
抽象类
我仍然需要同时从两个类继承.
那么推荐的解决方案是什么?
解决方法
在Java 8中,你可以使用默认方法实现这一点,但这绝不是默认的意图所以这可能是一个糟糕的建议:
interface Foo { default void one () { System.out.println("ONE!"); } } interface Bar { default void two () { System.out.println("TWO!"); } } class FooBar implements Foo,Bar { } public void test() { FooBar fooBar = new FooBar(); fooBar.one(); fooBar.two(); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。