Java-接口和抽象类区别

 

  在类的设计中,需要明确一个原则,一个类不要去继承一个已经实现好的类,只能继承抽象类或实现接口,如果接口和抽象类都可以使用,那么优先使用接口,避免继承局限

  

abstract class AA{             //定义一个抽象类AA
    abstract public void printAA();    //抽象类中printAA()方法
    interface AAA{                    //抽象类中顶一个接口为AAA
        public abstract  void printAAA();      //接口AAA中含有一个printAAA方法
    }
}
class BB extends AA{                    //一个BB类继承抽象父类AA
    public void printAA(){   //覆写父类中抽象方法AAA
        System.out.println("hello-->AAA");
    }
    class CC implements AAA{            //定义BB类中内部类为CC并实现接口AAA
        public void printAAA(){          //覆写接口AAA中printAAA方法
            System.out.println("hello--->BBB");
        }
    }
}
public class lcj1 {
    public static void main(String[] args){
        AA.AAA aa=new BB().new CC();  //实例化内部接口对象
        aa.printAAA();     //调用内部接口覆写接口AAA中的printAAA方法
    }
}
//hello--->BBB
抽象类中多个接口
interface AA{             //定义一个接口AA
    abstract public void printAA();    //抽象类中printAA()方法
    abstract class AAA{                    //抽象类为AAA
        public abstract  void printAAA();      //抽象方法为printAAA
    }
}
class BB implements AA{                    //一个BB类实现接口AA
    public void printAA(){   //覆写父类中抽象方法AAA
        System.out.println("hello-->AAA");
    }
    class CC extends AAA{            //继承接口AA中的AAA类
        public void printAAA(){          //覆写接口AAA中printAAA方法
            System.out.println("hello--->BBB");
        }
    }
}
public class lcj1 {
    public static void main(String[] args){
        AA.AAA aa=new BB().new CC();  //实例化内部接口对象
        aa.printAAA();     
    }
}
//hello--->BBB
接口中多个抽象类

 

posted on 2016-08-30 13:49  lcj122  阅读(105)  评论(0编辑  收藏  举报

导航