Fresh.587 2021-11-13 22:17 采纳率: 88%
浏览 29
已结题

父类里的静态变量如何传递给子类?


package javaapplication21;
public class JavaApplication21 {  
      public static void main(String[] args) { 
     System.out.println("----------测试职工----------");   
   Employee emp=new Employee("赵兵",'男',28,1500.0F);   
   Manager mgr=new Manager("徐军",'女',35,1800.0F,500.0F);  
    Director dir=new Director("黄帅",'男',45,3000.0F,500.0F,"2430","计划司");  
    Engineer eng=new Engineer("刘志军",'男',38,1600.0F,"工程师");  
    Secretary sec=new Secretary("邓萍",'女',23,1000.0F,"财务室");   
   System.out.println("emp的名字是"+emp.getName());   
   emp.upSalary(500.0F);  
    System.out.println(Employee.count);  
   mgr.upSalary(200.0F,200.0F);   
  System.out.println(mgr.getlnfo());   
  dir.setTel("8888");  
   System.out.println("dir的姓名"+dir.getName()+"dir的电话"+dir.getTel());   
  System.out.println(dir.getlnfo());   
  System.out.println(eng.getlnfo());  
   System.out.println(sec.getlnfo());  
  }  
  }
class Employee{   
 String name;  
  char sex;   
 int age;    
float salary;   
 static int count=0;  
  float minsalary; 
   Employee(String name,char sex,int age,float salary)  
  {   
     this.name=name; 
       this.sex=sex;    
    this.age=age;    
    this.salary=salary;  
      count++;  
  }    
void upSalary(float minsalary){   
    salary=salary+minsalary;
    }    
String getName()    {    
    return "员工"+name;  
  }   
 String getlnfo()    {  
      return "工资是"+salary; 
   }
}
class Manager extends Employee{  
  float allowance;  
  Manager(String n,char x,int a,float s,float aa)
    {       
 super(n,x,a,s);   
     allowance=aa;    
    count++;   
 }  
  final void upSalary(float inc1,float inc2)    {
        salary=salary+inc1; 
       allowance=allowance+inc2;   
         } 
   String getlnfo()    {   
     return "管理者"+super.getlnfo()+"收入:"+(salary+allowance);  
  }    
}
final class Director extends Manager{   
 String telephone;   
 String department;  
  Director(String n,char x,int a,float s,float aa,String t,String d)
    {    
    super(n,x,a,s,aa);    
    count++;    
    telephone=t;    
    department=d;   
 }    
void setTel(String tel){  
      telephone=tel;  
          }  
  String getTel()   
 {      
  return telephone;  
  }  
  String getlnfo(){     
   return name+"是"+department+"部门领导"; 
   }
}
final class Engineer extends Employee{   
 String title;  
  Engineer(String n,char x,int a,float s,String t){      
  super(n,x,a,s);    
    count++;   
     title=t;      
      }   
 String getlnfo(){   
     return name+"职称是"+title;  
  }
}
final class Secretary extends Employee{    
String office; 
   Secretary(String n,char x,int a,float s,String o) 
   {     
   super(n,x,a,s);      
  office=o;    
    count++; 
   }    
String getlnfo(){   
     return name+"是"+office+"的秘书";
    }
}

count输出是10,我输入了五个员工信息为什么输入会是10呢?count是父类里面的静态属性,我如何让他可以在父子类之间传递呢?谢谢!

  • 写回答

1条回答 默认 最新

  • 大鹏cool Java领域优质创作者 2021-11-14 10:07
    关注

    静态变量属于类,一个类不管创建多少次都只会有一份,子类可以使用父类.变量名的方式访问父类的静态变量

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月29日
  • 已采纳回答 11月21日
  • 创建了问题 11月13日

悬赏问题

  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入