package com.company;
public class Teacher extends Person{
private String subject;
//注意 构造函数没有void 注意下构造函数的书写格式;
public Teacher(){};
//有了构造的话,类在创建的时候,new Teacher("math"),括号里就可以传递参数了。
public Teacher(String subject){
this.subject=subject;
};
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
//重写的desp()
@Override
public void desp(){
super.desp();
System.out.println(this.subject+"我是老师");
}
public static void main(String[] args) {
//能不能tec 和 stu2 的类_类型都是Person
//tec使用了默认的空的构造器
Person tec=new Teacher();//发现这个时候()里加参数会报错
Person stu2=new student();
//设置老师的参数
//将专业也这个学生的属性也设置给老师?
Teacher tec2=new Teacher("chinese");
tec.setName("lu");
tec.setAge(52);
((Teacher) tec).setSubject("gym");
//当调用desp的时候,还是调用了自己的desp()
tec.desp();
//设置学生的参数
stu2.setName("lucy");
stu2.setAge(20);
((student) stu2).setSubject("music");
((student) stu2).setSchool("SH");
//当调用desp的时候,还是调用了自己的desp()
stu2.desp();
//假如将这个(student)这个强转删掉,
//当调用desp的时候,还是调用了自己的desp()
// 一个类person既被这个类继承了,又被两外一个类继承了,那么就会出现差异化,肯定哈,因为方法都会被重写
}
}