求助大神如何用Java写出这两个题目的代码? 5

1、设计一个学生类Student和它的一个子类Undergraduate(1)Student类中有name和age属性,一个包含两个参数的构造方法用于给name和age赋... 1、设计一个学生类 Student 和它的一个子类Undergraduate
(1)Student类中有name和age属性,一个包含两个参数的构造方法用于给name 和age赋值,一个show()方法打印Student的属性信息
(2)本科生Undergraduate增加一个degree(学位)属性,有一个包含三个参数的构造方法,前两个参数用于给继承的name和age属性赋值第三个参数给degree专业赋值,一个show()方法用于打印Undergraduate的属性信息
(3)在测试类中分别创建Student对象和Undergraduate对象调用他们的show()方法

2、研究多态中的向上转型和向下转型
1)创建两个类, 一个Man类, 属性: name(这里不需要private修饰), 行为: 谈生意business(在方法内输出谈生意)
一个SuperMan类, 属性:name(这里不需要private修饰), 行为: 重写谈生意方法(在方法内输出谈几个亿的大单子), 飞fly(在方法内输出超人不会飞), 并让SuperMan继承Man类
2)在测试类里面通过多态的方式创建对象, 并通过对象名调用name, 观察输出.
3)通过对象名调用谈生意的方法, 观察输出
4)通过对象名调用飞的方法, 观察输出. 该如何解决这个问题?
展开
 我来答
句心后端开发
2018-01-22 · 专注后端和移动端编程
句心后端开发
采纳数:316 获赞数:624

向TA提问 私信TA
展开全部
第一题
package baidu;

public class Student {
protected String name;
protected int age;

public Student(String name, int age) {
this.name = name;
this.age = age;
}

public void show(){
System.out.println("name = " + name);
System.out.println("age = " + age);
}
}
---------------------------------
package baidu;

public class Undergraduate extends Student {
private String degree;

public Undergraduate(String name, int age, String degree) {
super(name, age);
this.degree = degree;
}

public void show(){
System.out.println("name = " + name);
System.out.println("age = " + age);
System.out.println("degree = " + degree);
}
}

------------------------
package baidu;

public class TestRun {
public static void main(String[] args) {
Student s = new Student("singi",12);
s.show();
Undergraduate ug = new Undergraduate("lily",23,"本科");
ug.show();
}
}

输出:
name = singi
age = 12
name = lily
age = 23
degree = 本科
第二题:
package baidu;

public class Man {
String name;

public Man(String name) {
this.name = name;
}

public void business(){
System.out.println("在方法内输出谈生意");
}
}

----------------
package baidu;

public class SuperMan extends Man {
String name;

public SuperMan(String name, String name1) {
super(name);
this.name = name1;
}

@Override
public void business() {
System.out.println("在方法内输出谈几个亿的大单子");
}

public void fly(){
System.out.println("在方法内输出超人不会飞");
}
}

------------------
package baidu;

public class TestMan {
public static void main(String[] args) {
Man m = new Man("singi");
System.out.println(m.name);
m.business();
SuperMan sm = new SuperMan("lily","xiaoming");
System.out.println(sm.name);
sm.business();
sm.fly();
}
}

输出:
singi
在方法内输出谈生意
xiaoming
在方法内输出谈几个亿的大单子
在方法内输出超人不会飞
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式