java接口类和抽象类

来源:互联网 发布:navicat linux 安装 编辑:程序博客网 时间:2024/06/04 19:22

对一些接口和抽象类的理解


接口和抽象类

    加了限制的类,说起来感觉和像栈和队列,图有些方面相似,栈,队列,图,都是加了限制的链表,成了一种新的数据结构,并不是一定要按这种方式来操作,只是一种人为的限制罢了。    假如你在用栈的时候给定义并实现了一个可以操作除了栈顶的方法, 那就不叫栈了,那是链表,没有加限制的链表。    接口(Interface),抽象类(abstract)也类似 都是在一般类上加了限制的一种新的供用户操作的结构类。

接口(Interface)

Interface ClassName{
//代码块
}

接口类里面的属性必须是 static final ,方法必须是public  方法体里面不能有自己实现的方法 (但是可以有默认方法 即 default methodName(){ //...}

抽象类(abstract)

abstract ClassName{
//代码块
}

    抽象类里面的属性可以不是 static final ,方法也可以不是public  且可以在abstract 类中直接实现 , 若不实现就要加上abstract关键词限定 

相关代码

接口类

 interface simplein{    static final int x = 0;  //所有变量必须是public static final    void show();                        //每个实例各有的    default show(){        System.out.println();    }    void showOne();                     //每个实例各有的    /**若要实现,必须添加修饰符static,使之变为静态*/    static void showStatic(){           //每个实例共有的        System.out.println("(interface)在interface中的showStatic()");    }}Interface simplein_Other{    //...}-------------------------------------------------class simpleinOne implements simplein{    /**必须实现simple的所有方法**/    @Override    public void show() {        System.out.println("(interface)在simplein的子类simpleinOne中实现的show()");    }    @Override    public void showOne() {        System.out.println("(interface)这个只是作为测试,说明 要实现simplein接口,必须实现其所有方法");    }}-------------------------------------------------//一个类可以实现多个接口class simpleinOne implements simplein implements simplein_Other{    //...}

抽象类

    abstract class simpleab{    /*** 抽象类中必须要使其函数也是abstract**/    abstract void show();    abstract void showOne();    /**若要实现必须要去掉修饰符abstract 或者像接口一样加上static*/    static void showStatic(){           //每个实例共有的        System.out.println("(abstract)在abstract中的showStatic()");    }    void showNoAbstract(){              //每个实例各有的        System.out.println("(abstract)在abstract中的showNoAbstract()");    }}----------------------------------------------------class simpleabOne extends simpleab{    /**要想实现抽象类,同接口类一样都必须实现其所有方法**/    @Override    void show() {        System.out.println("(abstract)在simpleab的子类simpleabOne中实现的show()");    }    @Override    void showOne() {        System.out.println("(abstract)这个只是作为测试,说明 要实现simpleab抽象类,必须实现其所有方法");    }}//一个类不能实现多个抽象类,只能继承自一个抽象类
simplein.showStatic();  //simpleinOne.showStatic(); //报错,在interface中的static函数不能被实现类所调用,只能被自身调用simpleab.showStatic();  simpleabOne.showStatic();   //而这个不会报错,证明abstract的实现类可以访问到其超类的static函数

以上就是总结了一点点对其的理解,其实对其要想理解更深,就要在实际问题中,用到它,在上面环境什么情况下用到,用多了就熟悉了

原创粉丝点击