美文网首页
2020-01-07继承

2020-01-07继承

作者: keeeeeenon | 来源:发表于2020-01-08 09:41 被阅读0次

    代码解释下啊

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

    相关文章

      网友评论

          本文标题:2020-01-07继承

          本文链接:https://www.haomeiwen.com/subject/ubkractx.html