零基础Java:第十讲(四种访问权限修饰符、关键字super)

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

四种访问权限修饰符

  • 四种访问权限修饰符

    • public、default(不写)、protected、private
    • 如果子类和父类在同一个包下,那么对于父类的成员修饰符只要不是private,那就都可以使用
    • 如果子类和父类不在同一个包下,子类只有使用父类中的 protected和public成员

关键字super

  • 关键字super

    • 在java类中使用super来调用父类中的指定操作:

      • super可用于访问父类中定义的属性
      • super可用于调用父类中定义的成员方法
      • super可用于在子类构造方法中调用父类的构造器
    • 注意

      • 尤其当子父类出现同名成员时,可以用super来区分
      • super的追溯不仅限于直接父类
      • super与this的用法相像,this代表本类对象的引用,super代表父类的内存空间的标识
    • 举例
    • 练习

      • 第一题:修改定义的类Kids中的employed()方法,在该方法中调用父类ManKind的employed()方法,然后输出“but kids should study and no job!”
      • 第二题:在TestCylinder中求圆柱体表面积
      • 第三题:在TestCylinder中创建Circle对象,设置半径,计算圆的面积
    • 调用父类的构造器

      • 子类中所有的构造器默认都会访问父类中空参数的构造器
      • 当父类中没有空参数的构造器时,子类的构造器必须通过this(参数列表)或者super(参数列表)语句指定调用本类或者父类中相应的构造器,且必须放在构造器的第一行。(当父类只有有参构造可以使用时,子类必须显式构建一个有参构造来调用父类的有参构造,并且调用父类的构造方法要写在第一行)
      • 如果子类构造器中既未显式调用父类或本类的构造器,且父类中又没有无参的构造器(当然如果父类同时拥有有参和无参构造也不会报错,因为子类默认调用父类的无参构造),则编译出错。
    • this和super的区别

      • 注:因为this和super调用构造器都必须放首行,所以只能使用一个

Guess you like

Origin juejin.im/post/7068637449278193672