(1)定义一个抽象类Person,在Person类中声明两个属性:name和age,并设置其对应的getter方法,用于获取人的姓名和年龄;在Person类中声明一个有参构造方法,用于对Person类中的属性进行初始化;在Person类中声明一个say()方法和一个getContent()方法,在say()方法中调用getContent()方法。 (2)定义类 Student,并继承Person类。在Student类中声明一个属性score;声明Student类的构造方法并重写Person类的getContent()方法。 (3)定义类 Worker,并继承Person类。在Worker类中声明一个属性salary;声明Worker类的构造方法并重写Person类的getContent()方法。 (4)在main() 方法中使用父类引用指向子类对象的方式(向上转型),分别使用Person类和Worker类实例化两个Person对象per1和per2,并分别使用per1和per2调用say()方法。 不明白写的定义类总是有错的 麻烦给一个完整程序并且可以解释清楚
public class Person {
private String name;
private int age;
//有参构造方法,传入name,age
public Person(String name,int age) {
this.name = name;
this.age = age;
}
private void getContent() {
System.out.println(name+"今年"+age+"岁!他/她今天没有学习!");
}
public void say() {
getContent();
}
}
public class Student extends Person{
public double score = 99.5;//成绩
public Student(String name, int age) {
super(name, age);
// TODO Auto-generated constructor stub
}
public void getContent() {
// TODO Auto-generated method stub
System.out.println("我是个学生!我的成绩是:"+score);
}
}
public class Worker extends Person{
public double salary = 123.25;//工资
public Worker(String name, int age) {
super(name, age);
// TODO Auto-generated constructor stub
}
public void getContent() {
// TODO Auto-generated method stub
System.out.println("我是个工人,我一个月工资是"+salary+"元!");
}
}
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
Student per1 = new Student("张三", 18);
Worker per2 = new Worker("李四", 22);
per1.say();
per2.say();
per1.getContent();
per2.getContent();
}
}
运行结果:
定义Student和Worker类的时候没有继承Person类就调用person类里的方法吧,例如class Student extends Person{}