建立一个person类和一个Student类,功能如下叙述

/*

功能(1)poerson中包含 name addr  sex  age ,设置一个输出方法talk()来显示这四个属性;

(2)student类继承person类,并增加math English存放数学 英语成绩,用一个六参构造方法、一个两参构造方法,

             一个无参构造方法和重写输出方法talk()用于显示六种属性

*/

package Extends;

//父类对象person
public class Person {
//person属性  name addr sex age 
private String name;
private String addr;
private String sex;
private int age;
//创建构造器
public Person(int age,String name,String addr, String sex){
this.age=age;
this.name = name;
this.addr = addr;
this.sex = sex;
}
//对name addr  sex  age  进行封装
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//建立一个talk方法对个人信息进行输出
public void talk(){
System.out.println("学生信息"+"\t学生姓名:"+name+"\t学生住址:"+addr+"\t学生性别:"+sex+"\t\t学生年龄:"+age);
}

}




package Extends;
//建立学生类,并继承person类
public class Student extends Person {
//添加student类的属性   数学成绩   英语成绩
private int mathScore;
private int englishScore;
//创建student类的构造器
public Student(int age,String name,String addr, String sex,int mathScore,int englishScore){
super(age, name, addr,  sex);
this.mathScore=mathScore;
this.englishScore = englishScore;
}
//封装student类的属性
public int getMathScore() {
return mathScore;
}
public void setMathScore(int mathScore) {
this.mathScore = mathScore;
}
public int getEnglishScore() {
return englishScore;
}
public void setEnglishScore(int englishScore) {
this.englishScore = englishScore;
}
//重写talk()方法
public void talk() {

// TODO Auto-generated method stub
super.talk();
System.out.println("数学成绩"+mathScore);
System.out.println("英语成绩"+englishScore);

}

}




package Extends;


public class studentInformation {


public static void main(String [] args){
//创建对象时同时传入参数
Student s = new Student(20,"zfc","安徽","女",0,0);
s.setEnglishScore(90);
s.setMathScore(80);
s.talk();
}
}


  • 10
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 学生一个继承自person的子,它可以拥有person的所有属性和方法,同时还可以添加自己独有的属性和方法,比如学生的学号、班级、成绩等等。通过继承,可以避免重复编写代码,提高代码的复用性和可维护性。同时,也可以更好地体现出面向对象编程的思想,让代码更加清晰、简洁、易于理解和扩展。 ### 回答2: 学生是人群体中一个重要的组成部分。他们在学校接受教育和培训,是国家未来的希望,也是家庭的骄傲。因此,有必要定义一个学生student,来更好地组织教育培训。 在定义学生student时,要继承自person。这意味着学生会拥有person中的特性和属性,如姓名、出生日期、地址等。但同时,学生也应该有自己特有的属性和方法,以区分于person。 首先,学生应该有学号属性,用于唯一标识一个学生。此外,还应该有班级、年级、学校等属性,方便对学生进行分和管理。例如: class Student(Person): def __init__(self, name, birthdate, address, student_id, grade, class_no, school): super().__init__(name, birthdate, address) self._student_id = student_id self._grade = grade self._class_no = class_no self._school = school 其中,student_id是唯一标识一个学生的属性,grade是年级属性,class_no是班级属性,school是学校属性,都是以变量形式保存的。 在方法方面,学生应该有报到、选课和考试等方法。例如: class Student(Person): def __init__(self, name, birthdate, address, student_id, grade, class_no, school): super().__init__(name, birthdate, address) self._student_id = student_id self._grade = grade self._class_no = class_no self._school = school self._enrol_date = None # 报到日期 def enrol(self, date): self._enrol_date = date print("学生{}于{}报到成功!".format(self._name, date)) def select_course(self, course): print("学生{}已选择课程{}".format(self._name, course)) def take_exam(self, course, score): print("学生{}考{}科目,得分{}".format(self._name, course, score)) 其中,enrol()方法是报到方法,用于将学生的报到日期保存下来;select_course()方法是选课方法,用于选择课程;take_exam()方法是考试方法,用于记录考试成绩。 综上所述,学生是人一个,它拥有人的基本属性和方法,同时也有自己特有的属性和方法,以更好地满足学生的需求。 ### 回答3: 学生Student class)是一种特殊的人,它继承自 Person 。在面向对象的编程中,继承是一种实现代码重用和抽象概念的重要方式。子可以继承父的属性和方法,并扩展它们的功能定义一个学生,我们可以先确定它需要哪些属性和方法。学生是一个具有学习能力的人,所以它应该有一个成绩属性(score),代表学业成绩。为了方便,我们还可以设置一个学号属性(student_id),方便区分和管理各个学生。同时,我们可以根据学生的学习习惯和特点,添加一些方法,比如参加课外活动(join_activity)、寻求与老师的交流(communicate_with_teacher)等等。 这些属性和方法可以通过继承 Person 来实现。我们可以先定义一个 Person ,其中包含一些常规的人属性和方法,比如姓名(name)、性别(gender)、年龄(age)等等。然后,继承 Person 的所有属性和方法,再添加学生自己的属性和方法。 一个基本的学生定义可能如下所示: ``` class Person: def __init__(self, name, gender, age): self.name = name self.gender = gender self.age = age def say_hello(self): print("Hello, I'm", self.name) class Student(Person): def __init__(self, name, gender, age, score, student_id): super().__init__(name, gender, age) self.score = score self.student_id = student_id def join_activity(self, activity): print(self.name, "joins the activity", activity) def communicate_with_teacher(self): print(self.name, "tries to communicate with teacher.") ``` 在这个示例中,基 Person 定义一个构造方法 __init__ 和一个方法 say_hello,在学生 Student 中,通过 super() 调用父构造方法,调用基的属性和方法,同时,定义了学生自己的特定功能,比如参加课外活动和与老师交流。 需要注意的是,继承父时,子可以覆盖或重写父的方法,也可以新增方法,但是不可以删除父的方法。同时,在设计继承关系时,需要遵循单一职责原则和开闭原则,保证的可扩展性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值