java – 从两个源继承方法的类
发布时间:2020-12-15 04:43:21 所属栏目:Java 来源:网络整理
导读:这很难解释,但显示一段 Ruby代码很简单: 有两个实现方法的模块: module Foo def one print "ONE!" endendmodule Bar def two print "TWO!" endend 有一个包含它们的类: class Test include Foo include Barend 现在你的类Test可以调用这两个方法. 据我所
这很难解释,但显示一段
Ruby代码很简单:
有两个实现方法的模块: module Foo def one print "ONE!" end end module Bar def two print "TWO!" end end 有一个包含它们的类: class Test include Foo include Bar end 现在你的类Test可以调用这两个方法. 据我所知,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(); } 但是,我想重申@Thomas在评论中所说的内容.多重继承的需要往往是设计缺陷的标志. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |