黑马程序员_毕向东_Java基础视频教程第07天-10-面向对象(抽象类练习)
在经理类中work()方法体中为什么访问不到name属性呢,明明已经继承了雇员类的?
代码贴上:
- /**
- * 需求:开发一个系统,需要对员工进行建模,员工有三个属性,姓名、工号、工资,
- * 经理也是员工,除了含有员工的属性外,还具备奖金属性,
- * 请用继承的思想设计出类,要求类中提供必要的方法进行属性访问
- *
- *
- */
- public class Abstract_Show {
- public static void main(String[] args) {
- Manager m = new Manager("zhangsan","技术30",5000.00,50000.00);
- m.work();
- }
- }
- //雇员类
- abstract 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;
- }
- abstract void work();
- }
- //普通员工类
- class Pro extends Employee{
- Pro(String name,String id,double pay){
- super(name,id,pay); //调用父类的构造方法对属性进行实例化
- }
- //复写了工作方法
- void work(){
- System.out.println("pro work");
- }
- }
- //经理类
- class Manager extends Employee{
- //经理特有的奖金属性
- private double bouns;
- Manager(String name,String id,double pay,double bonus){
- super(name,id,pay); //调用父类的构造方法对属性进行实例化
- this.bouns = bonus; //对经理特有的属性进行单独实例化
- }
- //复写了工作方法
- void work(){
- System.out.println(name);
- }
- }
复制代码 |