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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gmz158 中级黑马   /  2014-8-4 21:32  /  1246 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 gmz158 于 2014-8-5 00:36 编辑

/**
面向对象中的继承
        在创建一个类时,系统会自动给出无参构造函数,而如果手动给出了带有参数的构造函数,
        系统则不会再给出构造函数,需要自己手动给出。构造函数是用来进行属性初始化的。
        Staff中的属性为私有属性,只能在本类中调用,需要给出公开的get/set方法。
        Staff为抽象类,其方法可以为抽象的,也可以不为抽象的,
        Programmer/Manager继承了Staff,而类Staff中abstract work();为抽象方法,
        其子类Programmer/Manager需要重写这个方法
*/
class Demo5
{
        public static void main(String[] args)
        {
                Manager man=new Manager("张三",01,3500,2000);
                System.out.println("name:"+man.getName()+"number:"+man.getNumber()+"pay:"+man.getPay()+"money:"+man.getMoney());
                man.work();
                Programmer pro=new Programmer("李四",02,2000);
                System.out.println("name:"+pro.getName()+"number:"+pro.getNumber()+"pay:"+pro.getPay());
                pro.work();
        }
}
abstract class Staff
{
        private String name;
        private int number;
        private int pay;
        Staff(){}//手动给出无参构造函数
        Staff(String name,int number,int pay)//三个参数的构造函数
        {
                this.name=name;
                this.number=number;
                this.pay=pay;
        }
        abstract void work();//抽象方法
        //---------------------get/set方法
        void setName(String name)
        {
                this.name=name;
        }
        String getName()
        {
                return name;
        }
        void setNember(int number)
        {
                this.number=number;
        }
        int getNumber()
        {
                return number;
        }
        void setPay(int pay)
        {
                this.pay=pay;
        }
        int getPay()
        {
                return pay;
        }
}
class Programmer extends Staff
{
        Programmer(){}
        Programmer(String name,int number,int pay)
        {
                super(name,number,pay);
        }
        void work()//重写work方法
        {
                System.out.println("写程序");
        }
}
class Manager extends Staff
{
        int money;
        Manager(){}
        Manager(String name,int number,int pay,int money)
        {
                super(name,number,pay);
                this.money=money;
        }
        void work()//重写work方法
        {
                System.out.println("处理事务");
        }
        //--------------------------------
        void setMoney(int money)
        {
                this.money=money;
        }
        int getMoney()
        {
                return money;
        }
}

评分

参与人数 2技术分 +1 黑马币 +5 收起 理由
/aiq玩完?/aiq + 5 淡定
枫儿 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
代码没仔细看!!但你的理解没错
回复 使用道具 举报
路过,顶一下
回复 使用道具 举报
路过看看
回复 使用道具 举报
貌似抽象方法叫实现而不是叫重写的好点哦,,,路过,,:)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马