【发布时间】:2017-04-13 08:09:09
【问题描述】:
我们知道在Java中我们不能在接口中拥有多重继承和受保护的变量,那么我该如何实现这段代码呢?
Bar.java
public class Bar {
protected int a = 0;
public void increaseA() {
a++;
}
public void printA() {
System.out.println(a);
}
}
Foo.java
public class Foo extends Bar, FooBar {
@Override
public void printClassName() {
printClassName();
System.out.println("Foo");
}
}
FooBar.java
public class FooBar {
void printClassName(){
System.out.println("FooBar");
}
}
Main.java
public class Main {
public static void main(String[] args) {
Foo foo = new Foo();
FooBar fooBar = foo;
foo.printClassName();
Bar bar = foo;
bar.increaseA();
bar.printA();
}
}
【问题讨论】:
-
您可以在 Java 8 中使用
interface和default方法。 -
@PeterLawrey 我应该如何处理“ Protected in a = 0”
-
将
a留在Bar中的位置 -
@PeterLawrey 请看我的代码(答案)我已经实现了它,但不完全像你说的那样
-
要让它工作,你必须改变它。如果你想让它工作,我建议你使用
FooBar的接口。
标签: java interface multiple-inheritance