父类的非private属性,子类可以在自己的子类重写父类构造方法法中用“super”来更改属性值。 对不对?

既然父类的属性设定为private,那为何还可以在它的子类中用super()访问
public class Work {
private S//工作名称
public String getWorkname() {
public void setWorkname(String workname) {
this.workname =
public Work(){}//无参构造
public Work(String name){//有参构造
this.setWorkname(name);
//父类的方法
public void descraption(){//编写工作描述的方法
System.out.println("开心工作");
public class TestWork extends Work {
//测试用例个数
public int getExample() {
public void setExample(int example) {
this.example =
public int getBug() {
public void setBug(int bug) {
this.bug =
public TestWork(){}//无参构造
public TestWork(String workname,int example,int bug){
super(workname);
this.setExample(example);
this.setBug(bug);
//重写父类方法
public void descraption(){
System.out.println(this.getWorkname()+"的日报是,今天编写了"+this.getExample()+"个测试用例,发现了"+this.getBug()+"个Bug");
23:34:13已采纳回答
这个是通过继承的方式访问的 ,如果你在子类中定义父类的对象去访问私有属性,就是不能访问的。祝学习愉快!
兄弟你是怎么做到的,我子类super后面加父类的私有属性,访问不到的。package com.my.
public class Animal {
public Animal() {
public Animal(String name, int age, String kind) {
this.setName(name);
this.age =
this.kind =
public String getName() {
public void setName(String name) {
this.name =
public int getAge() {
public void setAge(int age) {
this.age =
package com.my.
import com.my.animal.A
public class Cat extends Animal{
public Cat() {
public Cat(String name,String weight) {
super(name);
this.weight =
this.setName(name);
public void run() {
System.out.println(this.getName()+"is running happily and his age is"+this.getAge());
采纳答案成功
你的每一次采纳都是回复者回复的动力!
3步骤 / 27门课程
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
请稍等 ...
Copyright (C) 2018 imooc.com All Rights Reserved | 京ICP备 号-11豆丁微信公众号
君,已阅读到文档的结尾了呢~~
chapter05 类的继承和派生[宝典]
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
chapter05 类的继承和派生[宝典]
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口 上传我的文档
 上传文档
 下载
 收藏
粉丝量:10
该文档贡献者很忙,什么也没留下。
 下载此文档
子类的全部属性=父类继承下来的+自己新建的。 说明: 父类的所有非 ...
下载积分:500
内容提示:子类的全部属性=父类继承下来的+自己新建的。 说明: 父类的所有非 ...
文档格式:PPT|
浏览次数:434|
上传日期: 21:00:07|
文档星级:
全文阅读已结束,如果下载本文需要使用
 500 积分
下载此文档
该用户还上传了这些文档
子类的全部属性=父类继承下来的+自己新建的。 说明: 父
关注微信公众号Java继承,子类默认在构造函数中用super()调用父类构造函数
1.子类继承父类的方法属性,并重写父类的方法,子类修饰符不能比父类方法的修饰符的范围狭窄。
2.子类必须在构造函数中使用super()来调用父类的构造函数
说明:1.父类没有写构造函数(系统默认有一个无参构造函数),子类可以不写构造函数(可以理解为:子类的系统默认构造函数,默认调用了super();)
2.如果父类有无参构造函数,子类可以不写构造函数(同上理解)
3.如果父类有有参构造函数,则子类必须在自己的构造函数中显示的调用父类的构造函数即super(参数名)
4.如果父类的构造函数只有一个,且修饰符是private,则不可以被继承。
Protect 与 默认 区别:
protected :成员 本类和子类可以访问。【其他类不可以使用(即使同一个包中)】
Frinedly(友好/默认):成员 本类和子类,同包可以访问【其他类可以使用】
继承中的构造方法的执行顺序:父类有构造函数,子类也写构造方法的时候必须显示的调用父类的构造方法【子类在穿件对象的时候,掉用构造方法的顺序是:
第一步:调用父类的构造方法
第二部:调用子类的构造方法】
package ExtendsT
public class Animal {private Spublic S//友好//protect方法,尝试对比友好和protect的区别protected void eat(String string){System.out.println("我吃:"+string);} //构造方法public Animal(String name){this.name=}//用于对比this.super写的方法,会在Dog子类中重写public void speak(String s){System.out.println("Animal方法调用");}public String getType() {}public void setType(String type) {this.type =}
public class Dog extends Animal{S
public Dog(String name){super(name);this.name=super.tall=100;this.setType("哺乳动物");type=this.getType();System.out.println(this.getType());}//构造函数问题
// public Dog(int tall){
// super(name);
// this.tall=
// }public void speak(){//这里的this和super会不一样(对比super的作用)super.speak("调用");this.speak("调用");System.out.println("我是狗狗的speak()函数");}public void speak(String s){//重写父类的方法System.out.println(s);}
public class Duck extends Animal{public Duck(String name) {super(name);// TODO Auto-generated constructor stub}
//main测试类
public class Testing_animal {public static void main(String[] args) {//狗类继承Animal类//初始化时调用构造函数就输出了小黄的动物种类Dog xiaohuang=new Dog("小黄");//调用Dog的speak函数,在speak函数中掉用了它的父类animal的speak函数xiaohuang.speak();//调用Dog重写的函数speakxiaohuang.speak("调用Dog中的speak(String s)方法");System.out.println(xiaohuang.name+"的身高是:"+xiaohuang.tall+"\t我是:"+xiaohuang.getType());//鸭子类继承Animal类Duck yazi=new Duck("鸭子");yazi.setType("禽类");System.out.println(yazi.name+"的动物种类是:"+yazi.getType());System.out.println("小黄的动物种类:"+xiaohuang.getType());//eat是protect方法yazi.eat("菜叶子");//sex是友好的属性yazi.sex='雌';}
Java 子类调用父类构造函数----super()详解
中关于子类调用父类构造函数问题
子类继承父类时,创建对象,构造方法的调用问题
Java构造函数之调用父类构造函数
Super关键字和调用父类构造器
重写父类方法、super关键字、调用父类构造器——Java
为什么java的子类中必须调用父类的构造方法
java中子类调用父类的构造方法
Java子类调用父类构造方法
C++中子类调用父类的有参构造函数
没有更多推荐了,java 通过反射reflect修改父类私有对象的值
1.java的父类如下:
package com.omstarps.
public class PrivateObject {
@SuppressWarnings("unused")
private String privateString =
public PrivateObject() {
privateString = "Hello World !";
现在的任务是不修改这个类同时没有set方法的情况下,要对这个类的私有对象访问和修改值。可以通过反射来实现。
2.子类的代码如下:
package com.omstarps.
import java.lang.reflect.F
public class ChildObject extends PrivateObject {
public void modifyFatherPrivateObjectByReflect() throws NoSuchFieldException, SecurityException,
IllegalArgumentException, IllegalAccessException {
// 得到私有字段
Field privateStringField = PrivateObject.class
.getDeclaredField("privateString");
// 通過反射設置私有對象可以訪問
privateStringField.setAccessible(true);
// 從父類中得到對象,并強制轉換為想要得到的對象
String fieldValue = (String) privateStringField.get(this);
System.out.println("orginal fieldValue = " + fieldValue);
// 將私有對象設置新的值
String str = "New Hello World !";
privateStringField.set(this, str);
String newStr = (String) privateStringField.get(this);
System.out.println("new fieldValue = " + newStr);
3.测试类如下:
package com.omstarps.
public class Test {
public static void main(String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
ChildObject chileObject = new ChildObject();
chileObject.modifyFatherPrivateObjectByReflect();
java可以通过反射机制访问父类的私有对象,并对父类的私有对象修改和重新设置值。
5.java也可以访问类的私有对象,连接如下:
http://blog.csdn.net/welcomeem/article/details/
Java反射之获取私有公共的属性和方法
通过反射来获取私有的属性,方法~~
Java反射机制(三):调用对象的私有属性和方法
转:用反射调用对象的私有属性和方法(经典)
java获取反射获取私有属性值
利用反射获取与修改private的属性的值
java反射访问私有属性和方法
java利用反射访问类的私有(private)属性及方法
利用Java反射机制获得私有成员
通过反射获取属性名和属性类型
没有更多推荐了,}

我要回帖

更多关于 子类能继承父类的构造方法吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信