2 qq 34899034 qq_34899034 于 2016.05.09 08:01 提问

java为什么父类没有有参构造,子类可以通过有参构造来访问父类的变量

java为什么父类没有有参构造,子类可以通过有参构造来访问父类的变量

8个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.05.09 08:24

首先,继承体系中父类的私有变量,子类是不能访问的,子类只能访问父类的protected\public修饰的成员变量;
其次,父类的成员变量如果提供了getter/setter方法,子类才能通过这些方法来访问父类的成员变量的。
至于你说的问题,构造函数的作用只是创建实例时初始化成员变量的,在构造函数中成员变量都是初始默认值,“子类可以通过有参构造来访问父类的变量”这句话也是没有根据的。继承体系中最重要的就是成员变量的访问权限的问题了。有权限才能访问,否则都是错误的。

zyf4005
zyf4005 帮忙看个问题吧http://ask.csdn.net/questions/254535
大约 2 年之前 回复
CSDNXIAON
CSDNXIAON   2016.05.09 08:12

一段代码解析JAVA父类子类构造过程
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

l_vaule
l_vaule   2016.05.09 08:12

因为super了父类无参的构造方法

sl_18500
sl_18500   2016.05.09 09:28

一楼回复的很详细了,并不是说 子类可以通过有参构造来访问父类的变量

zyf4005
zyf4005   2016.05.09 09:28

因为子类继承了父类,只要是父类中被public或者protected修饰的变量都能被子类的成员(子类的有参构造函数当然属于子类的成员了)访问。

donggua3694857
donggua3694857   Rxr 2016.05.09 09:43

一楼说得很好,看访问权限

tanjunchen
tanjunchen   2016.05.09 16:25

访问权限 与 构造函数的定义 super关键字

ljheee
ljheee   Rxr 2016.05.10 21:32

子类可以通过有参构造来访问父类的变量 ,因为这些变量是从父类那继承来的,就相当于自己的了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
父类不含无参构造方法子类构造方法必须显式调用
在继承关系下实例化子类的时候会先实例化其父类,然后再实例化子类。 也就是说在new一个子类的时候,其实是需要先把父类new出来的,如果父类中还有父类,那么就会逐层进行,从最顶层的父类先实例化,最后才到当前的子类。
子类无参构造调用父类有参构造方法
先上问题:为什么我的子类无参调用父类有参会出错??有同学这样问我,上图。class Person{ public Person(String name) { System.out.println("My name is "+name); } } class Man extends Person{ private String name = "Hell
Java子类调用父类的有参和无参的构造方法
1、Java子类自动调用父类的无参构造方法 例1:class Test1{ public Test1(){ System.out.print("1"); } } class Test2 extends Test1{ public Test2(){ System.out.print(" 2"); } } public class Tes
Java继承,子类实例化时,调用父类的无参构造方法
子类继承父类时,会继承父类的非私有成员变量和方法。子类实例化时,必须执行父类一系列的初始化工作,如果有多个间接父类,从最初的那个父类执行,这样,子类才能够拥有父类的成员变量和方法。子类实例化时总是先调用父类的无参构造方法示例一父类:Father 子类:SonFather.java//package com;public class Father { private String name
如果父类没有无参构造方法,那么子类的构造方法会出现什么现象呢?
/* 如果父类没有无参构造方法,那么子类的构造方法会出现什么现象呢? 报错。 如何解决呢? A:在父类中加一个无参构造方法 B:通过使用super关键字去显示的调用父类的带参构造方法 C:子类通过this去调用本类的其他构造方法 子类中一定要有一个去访问了父类的构造方法,否则父类数据就没有初始化。 注意事项: this(...)或者super(...)必须出现在第一条语
子类,父类默认构造函数及带参构造函数的调用
*在子类,父类默认构造函数及带参构造函数的调用: 如下程序,在父类,子类中均存在两种构造函数,一种是无参的构造函数,用于给一些属性提供默认值,一种是直接初始化某些属性;在子类进行继承时,子类构造函数对父类进行引用: 1.父类构造函数必须放在子类构造函数的第一行。 2.当父类中不存在构造函数时,系统会为父类自动生成一个无参的构造函数,且在子类构造函数的第一行默认调用。也可手动进行调用。 3.当
继承小知识点:父类如果没有无参构造器会怎样?
如果父类没有无参构造方法,那么子类的构造方法会出现什么现象呢? 报错。 如何解决呢?   A:在父类中加一个无参构造方法 B:通过使用super关键字去显示的调用父类的带参构造方法 C:子类通过this去调用本类的其他构造方法 子类中一定要有一个去访问了父类的构造方法,否则父类数据就没有初始化。
java中关于子类实例化时调用父类无参构造方法的问题
java中子类在实例化的时候调用父类的无参构造方法容易混淆的大致分以下几种情况: 1、子类和父类同时具有有参和无参的构造方法,子类有参构造方法中第一行写的有super.(xx),且子类实例化时用的是有参构造方法,那么此时不会先调用父类的无参构造方法,而是直接调用子类的有参构造方法; 2、子类和父类同时具有有参和无参的构造方法,子类有参构造方法中第一行写的没有super.(xx),且子类
何时子类必须显示调用父类带参构造函数
子类显示调用父类带参构造函数
java关于子类继承父类有参构造函数
为中华腾飞而读书!3.  西游记中角色定义: 唐僧: 姓名/性别/年龄/   念经 悟空: 姓名/性别/年龄/ 七十二变, 打妖怪 八戒: 姓名/性别/年龄/   三十六变, 调戏嫦娥 沙僧: 姓名/性别/年龄/ 挑担, 求救 白龙马: 姓名/性别/年龄/ 走 class Characters                                           ...