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

    一:总述

    1 抽象类一般会实现一部分操作,并且留一些抽象方法让子类自己实现,比如Stringbuffer和Stringbuilder的父类abstractStringbuilder。

    2 接口一般指一种规定,比如一个map接口中,可能需要实现增删改查等功能,如果你想实现一个具体map,这些方法就必须按照规定去实现。

    3 另外,一个类可以实现多个接口,但是不能继承多个类。

    二:例子

    class A{
        
    }
    interface M extends N,L{
        
    }
    interface N{
        
    }
    interface L{
        
    }
    public interface InterfaceTest {
        public final int n=10;//默认变量是public final
        final A a =null;//基本数据类型和引用都一样
        //不能用private,protect修饰
        public abstract void a();//所有方法都是由public abstract修饰
        //void b(){} 报错,接口里的方法不能有方法体,也不能有{},只能有();
        // final void b();
        // 注意,抽象方法不能加final。因为final方法不能被重写。
        //但如果抽象方法不被重写那就没有意义了,因为他根本没有代码体。
    }
    public abstract class AbstractTest {
        public final int n=10;//变量并没有被pulic和final修饰,只是一般的成员变量
        public final A a=null;
        //抽象方法可以有具体的方法
        private void a(){}
        //抽象方法没有方法体
        abstract void b();
        //private abstract void B();//报错,组合非法
    
        // 因为private修饰的方法无法被子类重写,所以和final一样,使抽象方法无法被实现。
    }

     

    抽象方法可以被实例化

    public abstract class B {
        B(){
            System.out.println("B被初始化了");
        }
    }
    
    class C extends B{
        C(){
            super();
            System.out.println("C被初始化了");
        }
    }
    //注意:先初始化B,然后初始化C,C会调用父类的构造方法

    1 抽象类一般会实现一部分操作,并且留一些抽象方法让子类自己实现,比如Stringbuffer和Stringbuilder的父类abstractStringbuilder。

    2 接口一般指一种规定,比如一个map接口中,可能需要实现增删改查等功能,如果你想实现一个具体map,这些方法就必须按照规定去实现。

    3 另外,一个类可以实现多个接口,但是不能继承多个类。

  • 相关阅读:
    Microsoft.VisualBasic.PowerPacks相关错误解决办法
    GridView绑定技巧终结者
    类型初始值设定项引发异常处理办法
    目前为目最全的CURL中文说明CURL
    [转]大型网站架构之优酷篇
    [原]ecshop代码分析二(缓存处理)
    [转]大型网站架构不得不考虑的10个问题
    [原]ecshop代码分析一(init.php文件)
    发布一款坐标转换软件
    坐标换算软件操作方法及下载地址
  • 原文地址:https://www.cnblogs.com/xhlwjy/p/11254801.html
Copyright © 2011-2022 走看看