(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(); } }
运行结果:
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 3无用
悬赏问题
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!
- ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?