用内部类来间接的实现多继承

来源:互联网 发布:流程优化六步法 编辑:程序博客网 时间:2024/06/06 14:29
package Fill.vice.test;import java.util.Date;/** *  * @author liufeihong * 每个内部类都能独立地继承自一个(接口的)实现,所以无论外部类是否已经 * 继承了某个(接口的)实现,对于内部类都没有影响。如果没有内部类提供的可以 * 继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决。从这个角度看, * 内部类使得多重继承的解决方案变得完整。接口中解决了部分问题,而内部类实现了 * "多重继承" */public class TestDemo {public static void main(String[] args) {Dog d=new Dog();/*Dog.chil b=d.new chil();b.talk();*/Dog.girl f=new Dog.girl();f.hh();d.g();//4.匿名内部类//a.继承式Som som=new Som(){public void ta(){System.out.println("bnbnb1");}};som.ta();//b.接口式Nimin nm=new Nimin(){public void taolu(){System.out.println("jiekouha");}};nm.taolu();//c.参数式nim(new Nimin(){public void taolu(){System.out.println("jiekouha2");}});}public static void nim(Nimin n){n.taolu();}}interface Nimin{public void taolu();}class Som{public void ta(){System.out.println("bnbnb");}}class Dog{public void say(){System.out.println("klll");}public void g(){final int x=9;//2.方法内部类class b{public void n(){System.out.println("nmnmnm"+x);}}b gb=new b();gb.n();}public void chil_talk(){chil c=new chil();c.talk();}//1.成员内部类class chil{public void talk(){System.out.println("fuc");}}//3.静态内部类static class girl{public void hh(){System.out.println("fuckkl");}}}