代码解释下啊
package com.hpe.test1;
//父类----基类
public class Person {
//继承
protected String name;
private String gender;
private int age;
private String addr;
//默认的午餐的构造方法
public Person() {
}
//有参数的构造方法
public Person(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
//工作
public void work() {
System.out.println("工作……");
}
public void eat() {
System.out.println("吃饭......");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
@Override
public String toString() {
return "Person [name=" + name + ", gender=" + gender + ", age=" + age + ", addr=" + addr + "]";
}
}
package com.hpe.test1;
//当类和类之间具有所属关系时,用继承
//子类----派生类
//子类继承了父类就继承了父类的属性和方法
//extends子类对父类进行继承扩展增强
//子类除了继承了父类的属性和方法还拥有自己的属性和方法
//super表示父类方法
//super表示父类的构造方法(含参无参)super
public class Teacher extends Person{
//构造方法
public Teacher(String name, String gender, int age,String addr) {
super(name,gender,age);//父类的构造方法
this.setAddr(addr);//本类的当前对象
}
//创建有参的构造方法,那么无参的构造方法会被覆盖
//如果希望使用无参的构造方法需要显式定义无参构造方法
public Teacher() {
}
//生活
public void life() {
//super代表的是父类对象
super.eat();
super.work();
super.eat();
}
//java支持单继承,一个类只能有一个直接父类有(多个间接父类),一个父类可以有多个子类
//重载:方法之间的关系,1.返回值类型 方法名相同,参数列表个数不同
//重写:方法之间的关系,1.发生在父类和子类之间2.函数三要素:返回值类型 方法名 参数列表 相同,方法体不同
public void work() {
System.out.println("上课");
}
// private String name;
// private String gender;
// private int age;
// private String addr;
//
// //工作
// public void work() {
// System.out.println("工作……");
// }
//
// public void eat() {
// System.out.println("吃饭......");
// }
//
//
//
// public String getName() {
// return name;
// }
// public void setName(String name) {
// this.name = name;
// }
// public String getGender() {
// return gender;
// }
// public void setGender(String gender) {
// this.gender = gender;
// }
// public int getAge() {
// return age;
// }
// public void setAge(int age) {
// this.age = age;
// }
// public String getAddr() {
// return addr;
// }
// public void setAddr(String addr) {
// this.addr = addr;
// }
}
package com.hpe.test1;
public class Test1 {
public static void main(String[] args) {
Person p1=new Person();
p1.work();
p1.eat();
//子类不能直接访问父类的私有成员
Teacher t1=new Teacher();
t1.work();
t1.eat();
System.out.println("--------------------");
t1.life();
}
}