protected继承

继承有个特点,就是子类无法访问父类的private字段或者private方法。例如,Student类就无法访问Person类的name和age字段:

class Person {

private String name;

private int age;

}

class Student extends Person {

public String hello() {

return"Hello, " + name; // 编译错误:无法访问name字段

}

}

这使得继承的作用被削弱了。为了让子类可以访问父类的字段,我们需要把private改为protected。用protected修饰的字段可以被子类访问:

class Person {

protected String name;

protected int age;

}

class Student extends Person {

public String hello() {

return"Hello, " + name; // OK!

}

}

因此,protected关键字可以把字段和方法的访问权限控制在继承树内部,一个protected字段和方法可以被其子类,以及子类的子类所访问,后面我们还会详细讲解。

2.super的使用

super关键字表示父类(超类)。子类引用父类的字段时,可以用super.fieldName。例如:

class Student extends Person {

public String hello() {

return"Hello, " + super.name;

}

}

上面的代码执行会有编译错误,student构造方法,无法调用Person的构造方法。

解析:任何class的构造方法,必须先构造发父类的构造方法。如果没有明确的调用父类的构造方法,编译器会自动帮我们加一句super(),所以Student类的构造方法实际上是这样

那么问题就出在父类即Person类没有默认的构造方法,子类即Student必须显示调用重载以后的构造函数,即

Student类中的写法为

总结:如果父类没有默认的构造方法,子类必须显示地调用super()并给出参数,让编译器定位到一个合适的构造方法。同时,子类不会继承任何父类的构造方法,子类默认的构造方法是编译器自动生成的,不是继承的

java protected 构造方法_java中子类调用父类构造方法注意事项相关推荐

  1. insert时调用本身字段_java中子类调用父类构造方法注意事项

    protected继承 继承有个特点,就是子类无法访问父类的private字段或者private方法.例如,Student类就无法访问Person类的name和age字段: class Person ...

  2. c++中子类调用父类方法的方法

    在c++中子类调用父类方法的方法和java所用的方式不一样, java使用super指针就可以调用,c++中虽然也有this指针,但是不能用super去调用父类方法. c++用的方法为:fatherC ...

  3. JAVA子类调用父类构造方法

    子类调用父类的构造方法 父类的构造方法不能被子类继承.以下语句中MyException类继承了java.lang.Exception类. public class MyException extend ...

  4. python中子类调用父类的初始化方法

    http://bestchenwu.iteye.com/blog/1044848 http://www.crazyant.net/1303.html 一直不太理解python的初始化方法,今天找了下资 ...

  5. JavaScript中子类调用父类方法的实现

    一.前言 最近在项目中,前端框架使用JavaScript面向对象编程,遇到了诸多问题,其中最典型的问题就是子类调用父类(super class)同名方法,也就是如C#中子类中调用父类函数base.** ...

  6. C#中子类调用父类的实现方法

    本文实例讲述了C#中实现子类调用父类的方法,分享给大家供大家参考之用.具体方法如下: public class Person {public Person(){Console.WriteLine(&q ...

  7. python子类如何调用父类方法_python中子类调用父类函数的方法示例

    前言 本文主要给大家介绍了关于python子类调用父类函数的相关内容,Python中子类中的__init__()函数会覆盖父类的函数,一些情况往往需要在子类里调用父类函数.下面话不多说了,来一起看看详 ...

  8. java继承父类执行顺序_java中子类继承父类程序执行顺序问题

    Java中,new一个类的对象,类里面的静态代码块.非静态代码.无参构造方法.有参构造方法.类的一般方法等部分,它们的执行顺序相对来说比较简单,用程序也很容易验证.比如新建一个测试父类. public ...

  9. Java里子类调用父类构造方法问题

    在Java中,子类的构造过程中,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的? 答案如下: 当你new一个子类对象的时候,必须首先要new一个父类的 ...

  10. java不能覆盖父类的_java中子类覆盖父类方法所必须满足的条件

    一.描述 子类重写(覆盖)父类的方法必须满足的条件: 1.父类中的方法在子类中必须可见,即子类继承了父类中的该方法(可以显式的使用super关键字来访问父类中的被重写的方法), 如果父类中的方法为pr ...

最新文章

  1. python批量pdf转word,python批量实现Word文件转换为PDF文件
  2. 内存泄漏检测工具VLD在VS2010中的使用举例
  3. 电机高频注入原理_永磁同步电机新型转子位置估计误差补偿策略
  4. Codeforces 32E Hide-and-Seek 乞讨2关于镜面反射点 计算几何
  5. Nature撤稿!为销毁造假证据丢弃电脑,“划时代”成果翻车了,副校长鞠躬道歉...
  6. 叮当快药产品体验报告
  7. Linux Server 安装 raid 1
  8. php面试 算法,PHP面试之常用算法 - 简庆旺个人博客|PHP教程|PHP学习|Python学习|Python教程|Seo学习|Seo教程...
  9. [2019杭电多校第三场][hdu6609]Find the answer(线段树)
  10. 2021包膜机十大品牌排行榜
  11. fprintf函数matlab,fprintf函数的运用(组图)
  12. Flutter学习笔记
  13. Lattice FPGA 使用指南4 - 全局复位网络GSR的使用
  14. 个人简介之物理层安全
  15. Qt 5.7设置调试器
  16. html书签导入苹果,如何把360浏览器的收藏书签导入safari浏览器里
  17. JAVA团队开发手册 - 1.环境搭建
  18. 使用Canvas实现网页鼠标签名效果
  19. torch.roll图片实验
  20. linux dns 自动识别,Linux 自动化部署DNS服务器

热门文章

  1. switch 连接 LG 48GQ900 没有声音
  2. 怎么给图片加边框线?图片加边框的方法
  3. 病毒入侵:全靠分布式 Gossip 协议
  4. 记一次某制造业ERP系统 CPU打爆事故分析
  5. 查看pdf文件的目录和添加标签的方法
  6. sklearn.impute.SimpleImputer 数据填充
  7. python的csv安装_Python csv模块:处理csv文件
  8. mkv视频文件损坏如何修复?很简单方法
  9. 人民币持续升值,百姓感受渐深
  10. 帆软报表js给某个单元格添加背景色