美文网首页
java抽象和接口

java抽象和接口

作者: 寻叶亭 | 来源:发表于2018-07-19 11:15 被阅读4次

    再次回顾java基础时,发现之前一直没有理解,抽象和接口的由来和使用场景。现在发现可以简单理解了,在此记录方便以后回顾 。

    1.抽象

    定义:从具体事物抽出、概括出它们共同的方面、本质属性与关系等,而将个别的、非本质的方面、属性与关系舍弃,这种思维过程,称为抽象。也可以理解为笼统地、含糊不清、看不懂具体如何实现的意思。

    特点:
    1.抽象方法一定在抽象类中;
    2.必须被abstract关键字修饰;
    3.成员属性必须不能是 private(私有) 修饰符修饰
    4.抽象类不可以直接new一个对象出来,抽象方法必须由子类复写其所有抽象方法后,建立子类对象调用。
    5.成员方法可包含普通方法(虚方法)和abstract(抽象)修饰的成员方法
    6.子类可选择性的重写虚方法,必须重写父类的所有抽象方法,若没全部复写,则子类仍是一个抽象方法。

    举例:学生都有学习的方法,但不同的学生学习内容也不一样,那么在父类中学习这个方法就可以定义为抽象方法

    2.接口

    定义:在抽取共有属性和方法时,那些非共有,个别对象才具有的方法,即为接口。

    特点:
    1.接口是对外暴露的规则;
    2.接口是程序的功能扩展;
    3.接口可以用来多实现(原理是接口中无方法主体,可由子类任意定义),用来弥补java中类不能多继承的不足;
    4.接口不可实例化,接口里不能包含普通方法
    5.接口与接口之间可以有继承关系。

    举例:抽烟就是一个个别对象才有的方法,抽烟的人在创建对象时实现抽烟的接口,不抽烟的人不实现即可。

    abstract class Stutent{
        abstract void study();
    }
    interface smoking{
        void smoke();
    }
    //zhangsan抽烟
    class zhangsan extends Stutent implements smoking{
        void study(){
            System.out.println("学习java");
        };
        public void smoke(){};
    }
    //lisi不抽烟
    class lisi extends Stutent{
            System.out.println("学习python");
    }
    

    相关文章

      网友评论

          本文标题:java抽象和接口

          本文链接:https://www.haomeiwen.com/subject/diezpftx.html