/*定义一个People类,它包含属性有姓名name和性别sex和年龄age,一个构造方法,用来初始化这三个属性;
定义一个People类的子类Student,添加一个属性学好number,添加两个构造方法,一个有参构造方法,一个无参构造方法,
他们都要调用父类的构造方法或本类的构造方法来完成对象的初始化,
添加两个成员方法,一个事选课choose(),用来输出“我没有选课”,另一个是选课choose(String),用来选择由参数指定的课程。*/
public class Csj13 {
String name;
String sex;
int age;
//对于年龄的设置的要求
public void setAge(int age) {
if (age>0 && age<100)
this.age = age;
else
this.age = 0;
}
public Csj13() {
}
public Csj13(String name, String sex, int age) {
super();
this.name = name;
this.sex = sex;
this.setAge(age);//注意在这里用的是setAge()来赋符合条件的年龄值
}
@Override
public String toString() {
return "姓名:" + name + ", 性别:" + sex + ", 年龄:" + age;
}
}
/*定义一个People类的子类Student,添加一个属性学好number,添加两个构造方法,一个有参构造方法,一个无参构造方法,
他们都要调用父类的构造方法或本类的构造方法来完成对象的初始化,
添加两个成员方法,一个事选课choose(),用来输出“我没有选课”,另一个是选课choose(String),用来选择由参数指定的课程。*/
public class Student extends Csj13 {
String number;
public Student() {
super();
}
public Student(String name, String sex, int age, String number) {
super(name, sex, age);
this.number = number;
}
public void choose() {
System.out.println("我没有选课");
}
public void choose(String course) {
System.out.println("选课为:" + course);
}
@Override
public String toString() {
return super.toString() + " 学号:" + number;
}
public void print() {
System.out.println(this.toString());// 执行子类的tostring()
}
}
class Student_test {
public static void main(String[] args) {
Student s1 = new Student();
s1.print();
s1.choose();
Student s2 = new Student("张三", "女", 66, "12345678");
s2.print();
s2.choose("java");
Student s3 = new Student("陈陈陈", "女", 180, "12345678");
s3.print();
s2.choose("java");
}
}