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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 待解封的小刀 中级黑马   /  2014-7-12 14:45  /  1303 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问 大神们  父类中有些 private的变量,然后父类中提供了调用这些变量的办法。假如子类去继承extents父类   请问 继承后  子类类中有这些 变量吗? 对子类建立对象,可以调用这些变量吗、?  求解答
结合事例:
class Employee    父类
{
        private String name;
        private String id;
        private double pay;   变量进行私有化
        Employee(String name,String id,double pay)   构造函数 对象初始化
        {
                this.name=name;
                this.id=id;
                this.pay=pay;
        }
        public  void work()  调用这些参数
        {
               
                System.out.println("name="+name+"id="+id+"pay="+pay);
       
        }

}
class Manager extends Employee    子类
{`           private int bouns;
        Manager(String name,String id,double pay,int bouns)
        {
                super(name,id,pay);      调用父类中的变量
               
                this.bouns=bouns;
        }
        public void work()
        {
                System.out.println("name="+name+"id="+id+"pay="+pay+"bouns="+bouns);
        }
class EmployeeDemo   
{
        public static void main(String[] args)
        {
       
                Manager M=new Manager("lisi","000X55",324.98,456);
               
                M.work();
        }


大神们  上面的会显示错误  说 name id 和pay  会访问到private 中的name  id 和pay  求解 这个是怎么回事  我的程序  感觉没问题啊  怎么就继承不下来呢?  如果要显示结果 怎么做啊?不要把私有的内容去掉,,,,这种方法 可以 但是不合理。。。。求解合理的方法。

2 个回复

倒序浏览
你把父类中的成员变量私有之后,子类自然就继承不了父类的私有变量了,用get/set方法
  1. class Employee {
  2.         private String name;
  3.         private String id;
  4.         private double pay;

  5.         public String getName() {
  6.                 return name;
  7.         }

  8.         public void setName(String name) {
  9.                 this.name = name;
  10.         }

  11.         public String getId() {
  12.                 return id;
  13.         }

  14.         public void setId(String id) {
  15.                 this.id = id;
  16.         }

  17.         public double getPay() {
  18.                 return pay;
  19.         }

  20.         public void setPay(double pay) {
  21.                 this.pay = pay;
  22.         }

  23.         public Employee(String name, String id, double pay) {
  24.                 super();
  25.                 this.name = name;
  26.                 this.id = id;
  27.                 this.pay = pay;
  28.         }

  29.         public void work() {

  30.                 System.out.println("name=" + name + "id=" + id + "pay=" + pay);

  31.         }

  32. }
复制代码
回复 使用道具 举报
谢谢了 !
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马