qq_57579792
2021-05-24 10:20
采纳率: 75%
浏览 235
已采纳

Java抽象类老师和学生

(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()方法。 不明白写的定义类总是有错的 麻烦给一个完整程序并且可以解释清楚

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 嗨,女孩 2021-05-24 10:51
    已采纳
    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();
    	}
    }

    运行结果:

    已采纳该答案
    评论
    解决 2 无用
    打赏 举报
  • CSDN专家-微编程 2021-05-24 10:25

    定义Student和Worker类的时候没有继承Person类就调用person类里的方法吧,例如class Student extends Person{}

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题