Java设计:定义一个Person类和它的子类Employee。Person类有姓名、地址、电话号码和电子邮箱,

然后定义一个方法showMessage()用于输出人的信息。Employee类有办公室、工资和受聘日期成员变量,定义一个方法showMessage()用于输出雇员的信息。将Employee定义为public类,在其main()方法中分别为基于父类和子类创建两个对象,并分别为父类和子类的成员变量赋值,然后分别调用父类和子类的showMessage()方法输出信息。

弄了一个下午,始终不明白怎么用showmessga()来输出。求高手做一下这题,之后小弟分析分析,谢谢!

Person类:


public class Person {

    private String address;

    private String name;

    private String phoneNumber;

    public String mailBox;

    public void showMessage() {
        System.out.println("[ address(地址) = " + address + ", name(名字) = " + name + ", phoneNumber(电话号码) = "
                + phoneNumber + ", mailBox(电子邮箱) = " + mailBox + " ]");
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getName() {
        return name;
    }

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

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getMailBox() {
        return mailBox;
    }

    public void setMailBox(String mailBox) {
        this.mailBox = mailBox;
    }

}

Employee 类:

public class Employee extends Person {
    private double pay;

    private String office;

    public double getPay() {
        return pay;
    }

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

    public String getOffice() {
        return office;
    }

    public void setOffice(String office) {
        this.office = office;
    }

    public void showMessage() {
            /**
             * 输出自己的属性
             */
            System.out.println("[ pay(工资) = " + pay + ", office(办公室) = " + office + ", address(地址) = " + getAddress()
                    + ", name(名字) = " + getName() + ", phoneNumber(电话号码) = " + getPhoneNumber() + ", mailBox(电子邮箱) = "
                    + getMailBox() + " ]");
        }

    public static void main(String[] args) {
        /**
         * 创建父类对象。
         */
        Person p = new Person();
        /**
         * 给父类的属性赋值。
         */
        p.setAddress("中国上海");
        p.setMailBox("[email protected]");
        p.setName("张三");
        p.setPhoneNumber("18767676767");
        /**
         * 调用父类的 showMessage 。
         */
        p.showMessage();
        /**
         * 创建子类对象。
         */
        Employee e = new Employee();
        /**
         * 继承了 Person 类所以也可以调用 Person 类的 set 方法。
         * 给子类的属性赋值。
         */
        e.setAddress("中国杭州");
        e.setMailBox("[email protected]");
        e.setName("李四");
        e.setPhoneNumber("18989898989");
        e.setOffice("开发部");
        e.setPay(1000);
        /**
         * 调用子类的 showMessage 。
         */
        e.showMessage();
    }

}

Person 类定义了一些私有的属性,子类并不能直接访问,但是针对这些属性提供了公开的 get 、 set 方法,子类继承父类后也就拥有了这些 get 和 set 方法(包括 showMessage方法)。Person 类在 showMessage 中将自己的私有属性都打印了一遍。

Employee 类继承了 Person 类,重写了 showMessage 方法,除了自己的私有属性,可以通过父类的 get 方法获取父类的私有属性。在 main 方法中,通过 set 方法对父类的属性和自己的属性进行了赋值。

希望能对您有所帮助。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-04-25
showmessage就是显示一些类属性的值

~~~~~~~~~追问

这个怎么个显示法?
我只知道,定义一个对象,然后用
system.out.println(对象名.变量名)能输出类的成员值。
至于用方法怎么输出类的成员值(属性)我不清楚

相似回答