Problem B: 面向对象综合题2
1.题目描述
要求如下:
1.定义一个抽象的"Role"类,有姓名、年龄、性别等成员变量。要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有) 。具有一个抽象的play()方法,该方法不返回任何值,同时至少定义两个构造方法。
2. 从Role类派生出一个"Employee"类 该类具有Role类的所有成员,并扩展 salary成员变量,同时增加一个静态成员变量职工编号"id"。同样要有至少两个构造方法,要体现出this和super的几种用法,还要求覆盖play()方法,并提供一个final sing()方法。
3. "Manager"类继承"Employee"类,有一个final成员变量"vehicle" 。
4. 在Main类中产生Manager和Employee对象,并测试这些对象的方法。
代码如下:
class Employee extends Role1
{
protected int id;
protected int salary;
public Employee(){}
public Employee(String name,int age,String sex,int id,int salary)
// 你的代码将被嵌入这里
class Main{
public static void main(String[] dsa)
{
Employee e=new Employee("you xiao",20,"Man",1201012204,15000);
Manager m=new Manager();
System.out.println(e.id);
System.out.println(e.salary);
System.out.println(e.name);
System.out.println(e.age);
System.out.println(e.sex);
System.out.println(m.vehicle);
m.play();
m.sing();
}
}
2.输出描述
1201012204
15000
you xiao
20
Man
Lamborghini
i can paly
i can sing
3.代码实现
吐槽:恶心
1.提交的代码
{super(name, age, sex);this.id = id;this.salary = salary;}@Overridepublic void play() {System.out.println("i can paly");}public final void sing() {System.out.println("i can sing");}
}class Manager extends Employee {final String vehicle;public Manager() {this.vehicle = "Lamborghini";}
}
abstract class Role1 {protected String name;protected int age;protected String sex;public Role1() {}public Role1(String name, int age, String sex) {this.name = name;this.age = age;this.sex = sex;}public abstract void play();
}
2.完整代码
abstract class Role1 {protected String name;protected int age;protected String sex;public Role1() {}public Role1(String name, int age, String sex) {this.name = name;this.age = age;this.sex = sex;}public abstract void play();
}class Employee extends Role1 {protected int id;protected int salary;public Employee() {}public Employee(String name, int age, String sex, int id, int salary) {super(name, age, sex);this.id = id;this.salary = salary;}@Overridepublic void play() {System.out.println("i can paly");}public final void sing() {System.out.println("i can sing");}
}class Manager extends Employee {final String vehicle;public Manager() {this.vehicle = "Lamborghini";}
}class Main {public static void main(String[] dsa) {Employee e = new Employee("you xiao", 20, "Man", 1201012204, 15000);Manager m = new Manager();System.out.println(e.id);System.out.println(e.salary);System.out.println(e.name);System.out.println(e.age);System.out.println(e.sex);System.out.println(m.vehicle);m.play();m.sing();}
}