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() ;

           }

    };

  • 相关阅读:
    linux里忘记root密码解决办法
    Oracle怎样方便地查看报警日志错误
    清空文件内容
    channel c3 disabled, job failed on it will be run on another channel
    未能启动虚拟电脑,由于下述物理网卡找不到,你可修改虚拟电脑的网络设置或停用之
    DG下手工处理v$archive_gap方法
    Vue.js + Element.ui 从搭建环境到打包部署
    js判断json对象是否为空
    获取 request 中用POST方式"Content-type"是"application/x-www-form-urlencoded;charset=utf-8"发送的 json 数据
    DIV的内容自动换行
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1941538.html
Copyright © 2011-2022 走看看