抽象类和类的继承。
- 创建抽象类Person,具有name属性,包含一个参数——姓名的构造方法,具备显示类信息的抽象方法display()。
- 创建Person的子类Student,属性包括姓名、年级、专业。重写父类的抽象方法。注意在类的继承中不能继承父类的构造方法。
- 创建Person的子类Employee,属性包括姓名、工资。重写父类的抽象方法,并添加获得工资和增加工资的方法。
- 创建测试类,分别创建学生类和员工类,并输出他们的信息。
代码:
Person.java
import java.util.Scanner;
abstract public class Person {
public String name;
abstract void display();
}
class Student extends Person {
public String name;
public String grade;
public String major;
void display(String _name, String _grade, String _major) {
name = _name;
grade = _grade;
major = _major;
System.out.println("My name is " + name);
System.out.println("My grade is " + grade);
System.out.println("My major is " + major);
}
}
class Employee extends Person {
public String name;
public int salary;
void display(String _name, int _salary) {
name = _name;
salary = _salary;
System.out.println("My name is " + name);
System.out.println("My salary is " + salary);
}
void addMoney(){
int salary=10000;
System.out.println("请输入加薪数目:");
Scanner sc = new Scanner(System.in);
int increases = sc.nextInt();
salary = salary + increases;
System.out.println("当前工资数目:" + salary);
}
void getMoney(){
int salary=10000;
System.out.println("请输入需要取走的工资金额:");
Scanner sc = new Scanner(System.in);
int withdrawals = sc.nextInt();
if(withdrawals <= salary) {
salary = salary - withdrawals;
System.out.println("当前工资余额:" + salary);
}else {
System.out.println("当前余额不足!");
}
}
}
PrintInfo.java
public class PrintInfo {
public static void main(String[] args) {
Student student1 = new Student();
student1.display("小明","2017级","计算机");
Employee employee1 = new Employee();
employee1.display("大明",10000);
employee1.addMoney();
employee1.getMoney();
}
}