2020-01-07继承

代码解释下啊

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();

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2.4组合使用构造函数模式和原型模式 综合使用构造函数和原型模式可以避免之前二者的问题,而取其长处。 通常来说,我...
    Lau17阅读 686评论 0 1
  • 两年前的一天晚上,我在一家网吧上网,一个叼着烟卷留着胡渣的哥们坐在了我旁边的位子上,动作娴熟的刷卡登游戏,他看了一...
    风梳烟沐0阅读 217评论 0 0
  • 突然一匹受惊的马飞奔在街道之上,他回头一看,马正朝自己奔跑过来,就在这个时刻一个健硕的身影出现,一拳讲马打趴在地下...
    忆先生阅读 217评论 0 2
  • 我悦你开心, 实想我舒心。 我送你玫瑰, 是要你高兴时我省心!
    飘荡着的那朵阅读 203评论 0 1
  • 最近,好多事,新学期课又是出奇的多,于是我就好久没更新了,今天周末,我决定将最近的学习所得整理一下,POST上来。...
    Vophan阅读 818评论 0 5