• 抽象类和接口的区别


    抽象类:抽象类中有抽象方法,普通方法,常量,变量,构造方法,全局常量;使用abstract定义;子类通过extends继承抽象类;一个子类只能继承一个抽象类;一个抽象类可以实现多个接口;模板设计。

    接口:接口中有抽象方法,全局变量;使用interface定义;子类通过implement实现接口;一个子类可以同时实现多个接口;一个接口不能继承一个抽象类,只能实现多个接口;一个接口中可以包含多个抽象类;工厂设计,代理设计。

    抽象类和接口的共同点:两者一起操作可以完成适配器设计,都可以通过对象的多态性,通过子类进行对象的实例化。

    优先使用接口。

    一个抽象类中允许包含一个接口。

    abstract class A{

           public abstract void fun() ;

           interface B{    // 内部接口

                  public void print() ;

           }

    };

    class X extends A{

           public void fun(){

                  System.out.println("****************") ;

           }

           class Y implements B{

                  public void print(){

                         System.out.println("===================") ;

                  }

           };

    };

    public class TestDemo01{

           public static void main(String args[]){

                  A a = new X() ;

                  a.fun() ;

                  A.B b = new X().new Y() ;    ////

                  b.print() ;

           }

    };

    反之,

    interface A{

           public void fun() ;

           abstract class B{    // 内部抽象类

                  public abstract void print() ;

           }

    };

    class X implements A{

           public void fun(){

                  System.out.println("****************") ;

           }

           class Y extends B{

                  public void print(){

                         System.out.println("===================") ;

                  }

           };

    };

    public class TestDemo02{

           public static void main(String args[]){

                  A a = new X() ;

                  a.fun() ;

                  A.B b = new X().new Y() ;

                  b.print() ;

           }

    };

  • 相关阅读:
    设计模式(一)基础面向对象
    面试题之三门问题
    「巫师3(The Witcher 3:Wild Hunt)」游戏测评
    欧拉角和四元数
    struts标签遍历各种list Map
    浅谈HtmlCleaner+XPath解析html或者xml
    hadoop简单例子
    解决JSP参数传递乱码的问题
    Set、List、Map的区别(浅谈)
    做个犀利的码农
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1941538.html
Copyright © 2020-2023  润新知