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

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

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

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

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

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

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

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

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