抽象类和接口复习

    技术2022-07-11  91

    1.抽象类

    1.1抽象类定义

           在面向对象中,所有的对象都是由类进行描绘实现的,但是并不是所有的类都是用来描绘对象的,当一个类中没有包含足够的信息描绘一个具体的对象。我们把这种类定义为一个抽象类。

    1.2抽象类的特征

        (1)不能用来实例化对象,通过被继承来使用。

        (2)一个类只能继承一个抽象类。

        (3)抽象类的修饰符不能是private。

        (4)抽象类中不一定有抽象方法,但是有抽象方法的一定是抽象类。

        (5)构造方法、类方法不能声明为抽象方法。

        (6)抽象类的子类必须实现抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

    2.接口

     2.1接口的定义

             接口指供别人调用的方法。

    注意:(1)接口中所有方法不能有具体的实现,即接口中的所有方法都是抽象方法。一般情况下不在接口中定义变量。

               (2)在抽象类可以包括一个或多个抽象方法。接口中所有的方法必须都是抽象的。不能有方法体。接口规定一个方法做什么,而不规定如何做。

               (3) 接口中声明的成员变量默认都是public static final的,必须显示的初始化。因而在常量声明中可以省略这些修饰符。是若干常量和抽象方法的集合。

     2.2接口的特征

    (1)接口中只定义抽象方法,这些方法默认都是public abstract。在方法声明中可以省略这些修饰符。

    (2)在接口中定义实例变量,非抽象实例方法以及静态方法都不行。

    (3)接口中没有构造方法,也不能被实例化。

    (4)一个接口不能实现另一个接口,但是可以多继承其他接口。

    (5)接口必须通过类来实现它的抽象方法。

    (6)如果一个类不能实现完接口中的抽象方法,那么这个类我们应该设计为抽象类。

    (7)不允许创建接口的实例,但是允许定义接口类型的引用变量引用实现该接口的类的实例。

    3.接口和抽象类的区别

     抽象类接口默认的方法实现有默认的方法实现完全抽象,不存在默认的方法实现实现子类通过extends关键字来继承抽象类,如果子类不是抽象类,则需要提供抽象类中的所有声明的抽象方法的实现。类使用implents 来实现接口,他需要提供接口中所有声明的方法实现构造器抽象类可以有构造器接口不能有构造起与正常java类的区别抽象类不能实例化,其他没有区别接口是完全不同的类型访问修饰符public、protected、default默认修饰符public,不可以用其他修饰符main方法有main方法,并且可以运行没有main方法多继承抽象类只能继承一个类,可以实现多个接口接口可以继承一个或多个其它接口添加新方法可以提供默认的方法,不用改变继承抽象类的子类接口中添加新方法,必须改变实现接口

    4.比较器接口

    实现Comparable接口中的抽象方法compareTo();

    实现Comparator接口中的抽象方法compare();

    5.接口中常量的默认修饰符和方法的默认修饰符是什么?

    接口中的方法被隐式指定为public abstract

    接口中的变量被隐式指定为public static final

     

     

    Processed: 0.012, SQL: 9