关键字abstract和interface接口

抽象类的特点:

    1. 抽象方法一定在抽象类中。

    2. 抽象方法和抽象类都必须被abstract关键字修饰。

   3.  抽象类不可以用new创建对象,因为调用抽象方法没有意义。

   4. 抽象类中的抽象方法要被使用,必须由子类复写所有的抽象方法后 ,建立子类对象调用,如果子类只覆盖了部分抽象方法,那么该子类仍旧是一个抽象类。

    5.  抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象。

注意:

    abstract关键字,和以下关键字不能共存:

                final :被final修饰的类不能有子类,而abstract修饰的类一定是要被子类继承的。

                private 抽象类中的私有的抽象方法不能被子类所知,就无法被复写。而抽象方法的出现就是要被复写。

                static : 如果是static修饰抽象方法,那么连对象都省了,直接类名调用就可以了。可是抽象方法运行没有意义。

抽象类中 可以有构造函数,因为是一个父类,要给子类提供实例的初始化。

接口:

     相当于是一个特殊抽象类,里面存的全部都是抽象方法。

        格式:

             1.通过interface来定义。

             2.接口中常见成员:常量 ,抽象方法

              而且这些成员都有固定的修饰符 。常量 : public ,static,final  方法: public abstract

            3. 接口中的成员都是共有的。

            4. 一个类可以对接口进行多实现,也弥补了多继承的安全隐患。所以java 对多继承用多实现来体现多继承的特性。

            5.一个类可以继承一个类的同时,实现多个接口。

            6.接口与接口之间是继承关系

   应用特点:

        1.接口是对外暴露的规则

        2.接口是功能的扩展

        3.接口的出现降低了耦合性。

     抽象类和接口异同:
    相同:
       1,都可以在内部定义抽象方法。
       2,通常都在顶层。
       3,都不可以实例化,都需要子类来实现。

    不同点:
      1,抽象类中可以定义抽象方法和非抽象方法,
   而接口中只能定义抽象方法。
      2,接口的出现可以多实现。
   抽象类只能单继承。
   也就是说:接口的出现避免了单继承的局限性。
      3,继承和实现的关系不一致。继承:is a,实现:like a 


猜你喜欢

转载自blog.csdn.net/m0_37564404/article/details/80154864