面向对象三大特征——继承

继承:提高代码的复用性

继承的好处

  1. 避免代码重复
  2. 修改父类,影响所有的子类(增加了耦合性)

如何继承:使用extends关键字

  1. 如果一个类没有指定父类,默认父类是Object,Object类是所有类的父类
  2. 单继承 一个类只能有一个父类 C++可以多继承
  3. 可以多层继承

一父二子一测试

(1)编写父类

public class Person {//父类
    private String name;
    private int age;
    private String gender;
    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 String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    public Person(String name, int age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }
    public Person() {
    }
    public void introduce(){
        System.out.println("姓名:"+name+"\t年龄:"+this.getAge()+"\t性别:"+this.gender);
    }
}

(2)编写Student和Teacher两个子类

public class Student extends  Person {//Student类是Person类的扩展
    private String stuNo;
    public String getStuNo() {
        return stuNo;
    }
    public void setStuNo(String stuNo) {
        this.stuNo = stuNo;
    }
    public Student(String name, int age, String gender, String stuNo) {
        super(name, age, gender);//调用父类的带三个参数的构造方法s
        this.stuNo = stuNo;
    }
    public Student() {
        
    }
}
public class Teacher extends  Person {//Teacher也是Person的扩展,Teacher是Person的子类
    private int teachOfYear;
    public int getTeachOfYear() {
        return teachOfYear;
    }
    public void setTeachOfYear(int teachOfYear) {
        this.teachOfYear = teachOfYear;
    }
    public Teacher(String name, int age, String gender, int teachOfYear) {
        super(name, age, gender); //调用父类的带三个参数的构造方法
        this.teachOfYear = teachOfYear;
    }
    public Teacher() {
    }
}

测试

public class Test {
    public static void main(String[] args) {
        //(1)创建Student类的对象
        Student stu=new Student("张三",20,"男","sxt1001");
        //创建Teacher类的对象
        Teacher tea=new Teacher("李四",30,"男",6);
        //来个自我介绍
        stu.introduce(); //父类的方法,子类可以继承
        tea.introduce();
    }
}

在这里插入图片描述
继承可以从父类继承非private的属性,非private的方法,不能继承构造方法,可以调用父类的构造方法

super关键字的作用:

a)调用父类的非private属性
b)调用父类的构造方法,要求必须是构造方法中第一句代码
c)调用父类的非private成员方法 super.introduce();
d)用于父类与子类的同名属性的区分,super指代的是父类,this指代的是子类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值