0
点赞
收藏
分享

微信扫一扫

Java对象的创建类的继承以及多态的使用

1.分别计算出经理与员工的绩效及工资。

(1)创建一个员工类Employee Employee要求:

成员变量:员工姓名(private String name) 员工工号( private int id) 员工工资( private int wage)

成员方法:

1、 员工工作 public abstract void work();

2、员工获得工资public abstract void getFullWage();

构造方法: 1、无参的构造方法 2、有参的构造方法,初始化成员变量。

(2)继承员工类编写一个经理类Manager Manager要求: 成员变量:增加一个成员变量:奖金:int reward;(经理的工资由两部分组成:基本工资+奖金) 成员方法:员工工作 - work() 这个方法要求输出: 该员工的名字+“经理在认真工作”。 员工获得工资-getFullWage () 这个方法要求输出: 该员工的名字+“经理的奖金是”+reward奖金+“,他的总工资是”+(wage基本工资+reward奖金);

构造方法:通过调用父类的构造方法来给部分成员变量进行赋值(super)。

(3)继承员工类编写一个普通员工类Commoner Commoner的要求:

成员方法:员工工作 -work() 这个方法要求输出: 该员工的名字+“这个普通员工在认真工作”。 员工获得工资-getFullWage() 这个方法要求输出: 该员工的名字+他的工资 构造方法:通过调用父类的构造方法(super),来给成员变量进行赋值。

创建一个测试类Test Test要求:

  1. 创建一个普通员工 c
  2. 创建一个经理 m
  3. 采用多态的方式分别调用经理、普通员工的work()和getFullWage ()方法输出
  4. 输出学号和姓名

package java_11_10;
 
public abstract class Employee {
 
    private String name;
    private int id;
    private int wage;
 
    public abstract void work();
 
    public abstract void getFullWage();
 
    public Employee() {
        super();
    }
 
    public Employee(String name, int id, int wage) {
        super();
        this.name = name;
        this.id = id;
        this.wage = wage;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public int getWage() {
        return wage;
    }
 
    public void setWage(int wage) {
        this.wage = wage;
    }
 
}

package java_11_10;
 
public class Manager extends Employee {
 
    private int reward;
 
    public Manager() {
        // TODO Auto-generated constructor stub
    }
 
    public Manager(String name, int id, int wage, int reward) {
        super(name, id, wage);
        this.reward = reward;
    }
 
    @Override
    public void work() {
        // TODO Auto-generated method stub
        System.out.println(getName() + "经理在认真工作");
    }
 
    @Override
    public void getFullWage() {
        // TODO Auto-generated method stub
        System.out.println(getName() + "经理的奖金是" + reward + ";他的总工资是" + (getWage() + reward));
    }
 
}

package java_11_10;
 
public class Commoner extends Employee {
 
    public Commoner() {
        // TODO Auto-generated constructor stub
    }
 
    public Commoner(String name, int id, int wage) {
        super(name, id, wage);
    }
 
    @Override
    public void work() {
        // TODO Auto-generated method stub
        System.out.println(getName() + "这个员工在认真工作");
    }
 
    @Override
    public void getFullWage() {
        // TODO Auto-generated method stub
        System.out.println(getName() + "的工资是" + getWage());
    }
 
}

package java_11_10;
 
public class Test {
    public static void main(String[] args) {
        Employee c = new Commoner("张三", 1001, 5000);
        c.work();
        c.getFullWage();
        Employee m = new Manager("李四", 2002, 7000, 1500);
        m.work();
        m.getFullWage();
    }
}

Java对象的创建类的继承以及多态的使用_构造方法

2.求1000以内的完数。

public class Number {
    public static void main(String[] args) {
        for (int a=2;a<=1000 ;a++ ){
            int c=0;
            for (int b=1;b<a ;b++ )
            {
                if (a%b==0)
                {
                    c+=b;
                }
            } 
            if(c==a)
            {
                   System.out.println(c);
            }
        } 
    }
}

Java对象的创建类的继承以及多态的使用_System_02

3.Citizen类包含姓名、性别、出生年月和输出信息的方法。从Citizen类继承,定义一个教师Teacher类,并添加属性教师代码、教师职位和h主讲课程,覆盖夫类的display()方法。调用子类的方法显示教师信息(在子类的方法中首先调用父类的方法)。

题目分析:

(1)数据成员

 教师代码、教师职位和主讲课程都设置为String 类型

(2)构造方法

 public Teacher( ),用"0000"、"助教"、"习题课"初始化添加的属性

 public Teacher(String personID,String name,String sex,String birthday,String teacherID,String position,String courseName)

(3)其他方法

 public void display(),首先调用父类的 display()方法,然后,输出新添加的属性

(4)程序运行

 调用有参构造函数,生成Teacher类的对象;参数为:"65410519670221272x","姜氏","女","1967.2.21", "1201","教授","物理学"

 调用该对象的display()方法

代码如下:

Citizen.java

package java2023_08_10;

public class Citizen {
	private String personID = "0000000000000000";
	private String name = "姜氏";
	private String sex = "女";
	private String birthday = "1967.2.21";

	public void display() {
		// TODO Auto-generated method stub
		System.out.println("身份证号码: " + personID);
		System.out.println("姓名:" + name);
		System.out.println("性别:" + sex);
		System.out.println("出生年月:" + birthday);
	}
}

Teacher.java

package java2023_08_10;

public class Teacher extends Citizen {

	private String id;
	private String work;
	private String className;

	public Teacher() {
		this.id = "0000";
		this.work = "助教";
		this.className = "习题课";
	}

	public Teacher(String personID, String name, String sex, String birthday, String id, String work,
			String className) {
		super();
		this.id = id;
		this.work = work;
		this.className = className;
	}

	@Override
	public void display() {
		super.display();
		System.out.println("教师编码:" + id);
		System.out.println("教师职位:" + work);
		System.out.println("主讲课程:" + className);
	}

}

Test.java

package java2023_08_10;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Teacher t = new Teacher("65410519670221272x", "姜氏", "女", "1967.2.21", "1201", "教授", "物理学");
		t.display();
	}

}

Java对象的创建类的继承以及多态的使用_java_03

举报

相关推荐

0 条评论