美文网首页
面向对象(三)

面向对象(三)

作者: 王欢乐whl | 来源:发表于2018-11-29 11:52 被阅读0次

    抽象类

    一.实例

    描述:
    • 定义一个抽象类Shape,具有受保护类型的x和y属性,以及公有的抽象方法获得面积。
      Rectangle类继承于Shape类,在构造方法中给父类属性x和y初始化,并重写父类中求面积的抽象方法。
      Triangle类也继承于Shape类,在构造方法中给父类属性x和y初始化,并重写父类中求面积的抽象方法。
      Cube类继承于Rectangle类,独有的属性是height,其构造方法需要调用父类的构造方法完成对x和y的初始化(立方体的底面长和宽),并对height初始化;独有的方法是求体积。
      创建上转型对象,求矩形的面积和三角形面积。
      创建对象,求立方体的体积。

    二.相关代码

    1.ShapeTest
    主程序.png
    2.Shape类
    Shape.png
    3.Rectangle类
    矩形.png
    4.Triangle类
    三角形.png
    5.Cube类
    立方体.png

    三. 注意点

    1.super关键字的三个作用
    • 访问父类属性


      image.png

      调用父类构造方法


      image.png
      调用父类成员方法
    2. 抽象类的说明
    • 抽象类中可以有抽象方法和非抽象方法共存
      如果一个类中含有抽象方法,则该类一定是抽象类
      子类如果继承抽象类,必须强制重写父类中的抽象方法!
    3.final关键字的说明
    • final修饰的变量就是常量
      final修饰的类不能被继承
      final修饰的方法不能被子类重写
    4.声明抽象方法和非抽象方法的区别:
    • 抽象方法不实现方法体;(无花括号)
    • 抽象方法实现方法体;(有)

    接口

    说明:
    • 和抽象类相似,但是更严格
      接口中只能有抽象方法
      接口中不能声明属性
      一个类可以实现多个接口
    • 关键字abstruct 允许在类中创建没有定义的方法——接口部分,但是没有提供具体的实现。interface关键字将产生一个完全抽象的类,该类中的所有方法都是抽象的。我们称这种类为接口。把关键字class用interface代替。
    • 接口中的成员修饰符是固定的:
      成员常量:public static final
      成员函数:public abstract
      由此得出结论,接口中的成员都是公共的权限。

    抽象类与接口的区别:

    链接如下:https://blog.csdn.net/jjjjjj123321/article/details/54135413

    相关文章

      网友评论

          本文标题:面向对象(三)

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