概述:
1.什么是继承
2.继承的好处
3.继承的格式
4.继承案例
5.继承后成员变量重名
6.继承后成员方法重名
7.方法重写
系统开发可以去找吴燕: [#156-22微27-78电87#]
1.继承的含义

总结:就是子类继承父类的属性和行为,使得子类对象可以直接具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。

2.继承的好处

1.提高代码的复用性(相同的代码不需要重复的写,只需要提取到父类中,子类可以直接使用)2.让类和类之间产生了关系3.继承的格式

3.继承的格式

class 父类 {...}class 子类 extends 父类 {...}// Java是单继承的。一个类智能继承一个类(一个人只有一个亲生父母)

4.继承案例

1.学生类属性:姓名、年龄、学习、吃饭、睡觉;2.老师类属性:姓名、年龄、教书、吃饭、睡觉;3.班主任类属性:姓名、年龄、管理、吃饭、睡觉;

4.1代码实现
共同拥有的属性抽取到父类,子类只需要继承父类就可以得到这些属性、方法,子类只需要写子类特有的方法即可。

//    定义父类public class Human {    private String name;    private int age;    public void eat(){        System.out.println("我是父类的吃方法");    }    public void sleep(){        System.out.println("我是父类的睡觉方法");    }  }  // 省略get、set、构造方法//   定义学生类public class Student extends Human {    public void study(){        System.out.println("我是学生类的上课方法");    }//   定义老师类public class Teacher extends  Human {public void teach(){    System.out.println("我是老师类的上课方法");        }    }}//   定义班主任类public class ClassTeach extends Human{    public void manage(){        System.out.println("我是班主任类的管理方法");    }}//   定义测试类    public static void main(String[] args) {        Teacher teacher = new Teacher();        teacher.eat();        teacher.sleep();        teacher.teach();        teacher.setAge(21);        teacher.setName("小明");        System.out.println(teacher);    }}

得到结果:

注意:子类不能继承父类的构造器,因为子类有自己的构造器。但是子类可以继承父类的私有成员(成员变量,方法),只是子类无法直接访问而已,可以通过getter/setter方法访问父类的private成员变量。

5.继承后成员变量重名
思考1: 子类继承父类出现重名的成员变量时会有变化吗?

子类继承父类后,出现重名的成员变量,子类会优先访问自己的,自己没有才去访问父类的

思考2: 子类如何访问父类的成员变量?

super:代表的是父类对象的引用,this:代表的是当前对象的引用。注意:子类构造器的第一行都隐含了一个super()去调用父类    无参数构造器,super()可以省略不写。格式:super.父类成员变量名(super后面可是有点的哦)

6.继承后成员方法重名
思考: 子类继承父类出现成员方法重名会有变化吗?

子类、父类中出现重名的成员方法,子类对象会优先调用自己的方法。

7. 方法重写

子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果,也称为重写或者复写。声明不变,重新实现。

7.1@Override重写注解
-@Override:注解,重写注解校验!
这是注解标记的方法,就说明这个方法必须是重写父类的方法,否则编译阶段报错。
建议重写都加上这个注解,一方面可以提高代码的可读性,一方面可以防止重写出错!
代码演示:

public class Student extends Human {    @Override    public void sleep(){        System.out.println("我是重写方法");    }}