zoukankan      html  css  js  c++  java
  • 抽象类和接口的区别

    抽象类:抽象类中有抽象方法,普通方法,常量,变量,构造方法,全局常量;使用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() ;

           }

    };

  • 相关阅读:
    fedora 27
    Python3 字符串操作
    python3 使用matplotlib画图问题
    Python3 移动文件——合集
    MySQL开放外部链接
    python之csv操作问题
    Question
    17-12-21
    python之List排序
    ubuntu版的sublime-text3输入中文问题
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1941538.html
Copyright © 2011-2022 走看看