7-4 小明爱学习
分数 15
作者 姚晓玲
单位 临沂大学
小明是个爱学习的,他自己学完了c、java,和python等课程,请写代码通过继承与封装完成这个过程。
1.定义学生类,有方法learn。
2.定义抽象类Course,包含属性courseName,抽象方法show
3.定义JavaCourse、PythonCourse,继承Course
4.定义Main类,完成工作
public class Main {
public static void main(String[] args) {
Student xiaoming = new Student();
xiaoming.learn(new JavaCourse("Java")); //学习Java课程
xiaoming.learn(new PythonCourse("Python"));//学习Python课程
}
}
class Student{
public void learn(【】){
【】;
System.out.println("study study hard,day day up");
}
}
//抽象类
【】class Course{
private String courseName;
//定义抽象方法
public 【】 void show();
public Course(String courseName) {
this.courseName = courseName;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
}
//Java课程继承Course
class JavaCourse 【】{
//构造方法
public JavaCourse(String courseName) {
【】
}
//重写show方法
}
class PythonCourse 【】{
//构造方法
public PythonCourse(String courseName) {
【】
}
//重写show方法
}
输入格式:
输出格式:
输入样例:
在这里给出一组输入。例如:
输出样例:
在这里给出相应的输出。例如:
this is Java course,far far
study study hard,day day up
this is Python course,very clear
study study hard,day day up
public class Main {
public static void main(String[] args) {
Student xiaoming = new Student();
xiaoming.learn(new JavaCourse("Java")); // 学习Java课程
xiaoming.learn(new PythonCourse("Python"));// 学习Python课程
}
}
class Student {
public void learn(Course course) {// learn方法需要传入课程类对象来进行学习
course.show(); // 调用Course类对象course的show方法来输出课程信息
System.out.println("study study hard,day day up");
}
}
//抽象类
abstract class Course { // 因为是抽象类,所以需要在class前加 abstract关键字,表示是抽象类
private String courseName;
// https://blog.csdn.net/m0_53328194/article/details/117199276
//定义抽象方法 // 定义抽象方法,所以需要加 abstract关键字,表示是抽象方法
public abstract void show();
public Course(String courseName) {
this.courseName = courseName;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
}
//Java课程继承Course ,继承Course 使用关键字 extends ,然后加上类 Course
class JavaCourse extends Course {
//构造方法
public JavaCourse(String courseName) {
super(courseName); // 调用父类有参的构造器,使用参数来给成员变量courseName赋值
}
// 重写show方法 ,show方法根据题目的输出格式来编写打印语句即可
@Override
public void show() {
// TODO Auto-generated method stub
System.out.println("this is " + this.getCourseName()+" course,far far");
}
}
class PythonCourse extends Course { // 同上, 继承Course 使用关键字 extends ,然后加上类 Course
//构造方法
public PythonCourse(String courseName) {
super(courseName); // 调用父类有参的构造器,使用参数来给成员变量courseName赋值
}
//重写show方法 ,同上,根据题目的输出格式来编写打印语句即可
@Override
public void show() {
// TODO Auto-generated method stub
System.out.println("thisi is "+this.getCourseName()+" course,very clear");
}
}