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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© luck_start 中级黑马   /  2015-9-28 00:43  /  549 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/**
* 2、 假如我们在开发一个系统时需要对员工进行建模,员工包含 3 个属性:
* 姓名、工号以及工资。经理也是员工,除了含有员工的属性外,另为还有一个奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
            
     思路:
     1.首先确定,谁是父类?谁是子类?
     2.父类已经拥有的,子类通过super就可以获取到,对于父类来说,提供最基本的
     属性以及方法.对于子类来说,既然是继承,必须要有自己独特的方法和属性才存在意义.
     
  总结:
          面向对象的一个特征----继承.很大程度上减少了代码量,增加了程序的功能扩展,并提高代码的复用.
         
  思考:
          继承既然从某种程度上增加的程序的功能扩展以及代码复用.但是,万事之间从来都是利弊交替.
          那么究竟继承会存在什么样的弊端呢?
          1.由于继承只可以是单继承,那么如果该子类想要重新定义一个体系功能时,就没有再可以继承的权利了.
          2.继承也让之前单一的程序变成连续的整体体系.从维护角度看,相对来说也增加了维护的难度.
          3.据以以上,因此继承需要在一个必须拥有强大共性的基础上继承才会带来更多效益,为继承而继承,就会使得程序变得轻浮,更加难以维护.
     
* */
public class Demo02 {
        public static void main(String[] args) {
                Enployee en = new Enployee("王武",1000,3653.33); //员工父类
                Manager ma = new Manager("赵六", 199, 5988.22, 3000.11); //经理子类.
               
                System.out.println(en.toString());
                System.out.println(ma.toString());
        }
}
class Manager extends Enployee
{
        private double bonus;
        Manager(String name,int id,double pay,double bonus)
        {
                super(name,id,pay);  //既然父类有了,我直接用还不行吗?
                this.bonus = bonus;  //父类没有的,那只能自己想办法了...
        }
        public double getBonus() {
                return bonus;
        }
        public void setBonus(double bonus) {
                this.bonus = bonus;
        }
        @Override
        public String toString() { //复写Object中toString方法
                return "Manager [bonus=" + bonus + ", Name =" + getName()
                                + ", Id =" + getId() + ", Pay =" + getPay() + "]";
        }
       
}

class Enployee  //定义父类 员工类
{
        private String name;  //父类中基本的属性.
        private int id;
        private double pay;
        Enployee(String name,int id,double pay) //初始化参数.
        {
                this.name = name;
                this.id = id;
                this.pay = pay;
        }
        public String getName() {  //必要的set,get方法.
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
        public int getId() {
                return id;
        }
        public void setId(int id) {
                this.id = id;
        }
        public double getPay() {
                return pay;
        }
        public void setPay(double pay) {
                this.pay = pay;
        }
        @Override
        public String toString() { //复写的toString方法.
                return "Enployee [name=" + name + ", id=" + id + ", pay=" + pay + "]";
        }
}

3 个回复

倒序浏览
中秋快乐!
回复 使用道具 举报
学习了
回复 使用道具 举报
学习,学习。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马