美文网首页
抽象类、接口

抽象类、接口

作者: 小圆圈Belen | 来源:发表于2020-06-13 11:05 被阅读0次

    抽象类

    • 抽象类生来就注定它是要被继承的,如果没有任何一个类去继承它的话,那么也就失去了它的意义;抽象方法生来就是要被重写的,而且是必须重写。
    • 特点:
      1.使用abstract修饰;
      2.抽象类中可以没有抽象方法;但是有抽象方法的类必须是抽象类;
      3.子类若是抽象类,则可以不实现父类的抽象方法;子类若不是抽象类,就必须实现父类的抽象方法。
      4.抽象类有构造方法,但是不能直接调用其构造方法来实例化抽象类,必须在子类中调用。
      5.抽象类中可以有方法没有方法体,即抽象方法;但是普通类中的方法必须有方法体。


      image.png

    抽象类

    • abstract修饰的类为抽象类,此类不能有对象,即无法对此类进行实例化,就是不能new;
    • 有抽象方法的类必须是抽象类;

    抽象方法

    • abstract修饰的方法为抽象方法,此方法不能有方法体;
    • 子类若是抽象类,则可以不实现父类的抽象方法;子类若不是抽象类,就必须实现父类的抽象方法。


      image.png
    image.png
    image.png

    接口

    • 特点:
      1.接口可以看作是特殊的抽象类,需要interface关键字进行定义,用implements关键字来实现接口。
      2.接口中可以定义属性,并且在定义时必须初始化该属性,接口中定义的属性的值不允许修改,常量。
      3.接口中定义的方法均为抽象方法
      4.接口可以继承接口,但是不能继承类,并且一个接口可以继承多个接口。
      5.接口的实现类若不是抽象类,就必须实现接口中的所有方法。若实现类是抽象类,可以选择性的实现接口中的任意多个方法。
      6.接口不算类,或者说是“特殊类”,所以定义接口不需要class

    那问题来了:既然接口是特殊的抽象类,那为什么要用接口呢?
    因为一个类只能继承一个父类,不能多继承,所以需要接口,可以实现多个接口。接口扩展的是对象的行为。


    image.png
    image.png

    抽象类和接口的区别

    image.png
    image.png

    相关文章

      网友评论

          本文标题:抽象类、接口

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