今日遇到一个题目:
A类 抽象类 有方法 z() , y()
B接口 也有方法 z() , y()
B接口 也有方法 z() , y()
现在有 D类 想实现B 继承C ,并且同时实现z() , y()
仔细想想就是利用内部类实现多继承的问题.写了一个例子.希望大家多指正.
------------------------------------------------
package cn.ly;
public abstract class A {
public abstract void z();
public void y(){
System.out.println("abstract class A method y");
}
}
public abstract void z();
public void y(){
System.out.println("abstract class A method y");
}
}
------------------------------------------------
package cn.ly;
public interface B {
public void z();
public void y();
}
public void z();
public void y();
}
------------------------------------------------
package cn.ly;
public class C extends A implements B{
public void z() {
System.out.println("class C 实现 abstract A method Z");
}
public void y(){
super.y();
}
public B getB(){
return new B(){
public void y() {
System.out.println("interface B impl method Y");
}
public void z() {
System.out.println("class C 实现 B method Z");
}
};
}
public void z() {
System.out.println("class C 实现 abstract A method Z");
}
public void y(){
super.y();
}
public B getB(){
return new B(){
public void y() {
System.out.println("interface B impl method Y");
}
public void z() {
System.out.println("class C 实现 B method Z");
}
};
}
打印结果
abstract class A method y
class C 实现 abstract A method Z
interface B impl method Y
class C 实现 B method Z