feat(class20): 子类构造器传参父类,兄弟构造器调用,重载方法,继承章完结

- 创建 People 类,包含姓名和性别属性
- 创建 Student 类,继承 People 类并添加年龄和学校属性- 创建 Teacher 类,继承 People 类并添加技能属性
- 实现了相应的 getter 和 setter 方法
- 重写了 Student 类的 toString 方法
- 新增了几个测试类来验证新创建的类
This commit is contained in:
2025-07-12 01:18:23 +08:00
parent 47d6b9a897
commit feff6784d5
8 changed files with 166 additions and 8 deletions

View File

@@ -8,18 +8,19 @@ public class Test {
c.m1();
}
}
class A{
class A {
int a = 10;
void m1(){
void m1() {
System.out.println(a);
}
}
class B extends A{
class B extends A {
int b = 30;
}
class C extends B{
class C extends B {
int a = 30;
}

View File

@@ -2,12 +2,12 @@ package class19;
public class Test {
public static void main(String[] args) {
Cat c = new Cat();
c.cry();
Cat c = new Cat(); //创建对象
c.cry();//调用cry方法
}
}
class Cat extends Animal{
class Cat extends Animal{
@Override //方法重写的校验注解,会校验与被重写方法的形参和返回值类型是否一致,保证方法重写安全
public void cry() {
System.out.println("喵喵喵~~~");
@@ -18,5 +18,4 @@ class Animal{
public void cry(){
System.out.println("动物会叫~~~");
}
}

30
src/class20/People.java Normal file
View File

@@ -0,0 +1,30 @@
package class20;
public class People {
private String name;
private char sex;
public People(){
}
public People(String name, char sex) {
this.name = name;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
}

66
src/class20/Student.java Normal file
View File

@@ -0,0 +1,66 @@
package class20;
public class Student {
private String name;
private int age;
private char sex;
private String schoolName;
public Student() {
}
public Student(String name, char sex, int age) {
//this 调用兄弟构造方法
//默认值处理
this(name,"黑马程序员",sex,age);
}
public Student(String name, String schoolName, char sex, int age) {
this.name = name;
this.schoolName = schoolName;
this.sex = sex;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public String getSchoolName() {
return schoolName;
}
public void setSchoolName(String schoolName) {
this.schoolName = schoolName;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", sex=" + sex +
", schoolName='" + schoolName + '\'' +
'}';
}
}

19
src/class20/Teacher.java Normal file
View File

@@ -0,0 +1,19 @@
package class20;
public class Teacher extends People{
private String skill;
public Teacher(){
}
public Teacher(String name, char sex, int age, String skill) {
super(name, sex);
this.skill = skill;
}
public String getSkill() {
return skill;
}
public void setSkill(String skill) {
this.skill = skill;
}
}

21
src/class20/Test.java Normal file
View File

@@ -0,0 +1,21 @@
package class20;
public class Test {
public static void main(String[] args) {
Zi zi = new Zi(10);
}
}
class Zi extends Fu {
public Zi(int a) {
super(a);//指定调用有参构造器,防止无参构造器报错
}
}
class Fu{
private Fu(){
System.out.println("父类无参构造方法执行了");
}
public Fu(int a){
System.out.println("父类有参构造方法执行了");
}
}

14
src/class20/Test2.java Normal file
View File

@@ -0,0 +1,14 @@
package class20;
public class Test2 {
public static void main(String[] args) {
Teacher t = new Teacher();
t.setName("张三");
System.out.println(t.getName());
Teacher t1 = new Teacher("张三", '男', 18, "java");
System.out.println(t1.getName());
System.out.println(t1.getSkill());
System.out.println(t1.getSex());
}
}

8
src/class20/Test3.java Normal file
View File

@@ -0,0 +1,8 @@
package class20;
public class Test3 {
public static void main(String[] args) {
Student s = new Student("张三","黑马程序员",'男',18);
System.out.println(s.toString());
}
}