A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丁强强 中级黑马   /  2013-3-4 19:10  /  1924 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 丁强强 于 2013-3-4 20:14 编辑

父类里面 private 怎么调用
class Demo
private String name;
Demo ( String name)
{
this.name = name;
}
       void Print()
{
        System.out.println(name);
}

class Demo1 extends Demo
{
这里怎么写?
}
class kaishi
{
public static void main (String [] args)
{
        new Demo1("张三").Print();

}

}

8 个回复

倒序浏览
class Demo1 extends Demo
{
//这里怎么写?-0-0-你技术分都二十了...这个怎么写都不知道么....
Demo1(String name)
{
super(name);
}
void Print()
{
        System.out.println(this.name);
}
}
回复 使用道具 举报
本帖最后由 克零岚 于 2013-3-4 19:59 编辑

我不得不说,丁同学这段代码太多错了,好吧,我改好的代码在下边
父类中的属性为私有的,则不能直接调用了,此时只要在父类中写出属性(即name)的public的get和set 方法,
  在子类中便可应用了,下面的例子即如此.

  1. class Demo{
  2. private String name;</p><p> public Demo() {
  3. super();
  4. }
  5. public Demo ( String name)
  6. {
  7. this.name = name;
  8. }
  9. public void setName(String name){        //添加public的get和set方法,在子类中调用getName()方法即可获得父类中private的属性值
  10.          this.name=name;
  11. }
  12. public String getName(){
  13.          return name;
  14. }
  15. public void Print()
  16. {
  17. System.out.println("name的属性值是"+name);
  18. }

  19. static class Demo1 extends Demo
  20. public Demo1(String name2) {

  21. super(name2);    //在这里用super(参数)的方法调用Demo1类的父类Demod带参构造方法,以此能够给name赋值
  22. }

  23.   
  24.   
  25.   
  26. }
  27. static class kaishi
  28. {
  29. public static void main (String [] args)
  30. {
  31.          new Demo1("dd").Print();

  32. }
  33. }
  34. }

复制代码
结果输出为:  name的属性值是:dd

评分

参与人数 1技术分 +1 收起 理由
高境 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
楼主你问的问题有点····那啥,我直接往里面加了个构造器就能运行了·····,这个是必须的子类不会继承父类的构造器,从运行结果来看它该继承了父类的private方法
import java.util.LinkedList;
import java.util.List;


class Demo{
private String name;
Demo ( String name)
{
this.name = name;
}
       void Print()
{
        System.out.println(name);
}
}
class Demo1 extends Demo
{

        Demo1(String name) {
                super(name);
               
        }

}
public class TechnologyPoint
{
public static void main (String [] args)
{
        new Demo1("张三").Print();

}

}
回复 使用道具 举报
陈圳 发表于 2013-3-4 19:19
class Demo1 extends Demo
{
//这里怎么写?-0-0-你技术分都二十了...这个怎么写都不知道么....

你代码能运行在说。
回复 使用道具 举报
克零岚 发表于 2013-3-4 19:54
我不得不说,丁同学这段代码太多错了,好吧,我改好的代码在下边
父类中的属性为私有的,则不能直接调用了, ...

谢谢你。
回复 使用道具 举报
莫嘉伟 发表于 2013-3-4 20:03
楼主你问的问题有点····那啥,我直接往里面加了个构造器就能运行了·····,这个是必须的子类不会继 ...

谢谢,我也郁闷,之前我也是加了构造函数,就是出错,忘记我怎么加的了
回复 使用道具 举报
class Demo
{
private String name;
Demo(String name)
{
  this.name = name;
}
void Print()
{
  System.out.println(name);
}
}
class Demo1 extends Demo
{
Demo1(String name) //方法Print()被继承,可以不要重写了
{
  super(name); //手动通过super语句来指定要访问父类中的构造函数
}

}
class KaiShi //注意规范:类名由多单词组成时,所有单词的首字母大写。当然,你写的不算错
{
public static void main(String[] args)
{
  new Demo1("张三").Print();
}
}
回复 使用道具 举报
我这个可以使用了,你试试
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马