JavaSE-07
目录一.继承二.继承的格式使用三.继承中使用封装(Private)四.继承的注意事项五.继承中成员变量的访问特点六.继承中成员方法的访问特点七.方法重写Override)八.抽象类九.抽象方法十.示例一.继承定义:Java 里的继承就是让一个类子类直接 “抄” 另一个类父类的代码不用重复写父类有的属性和非私有方法子类默认都能用子类还能加自己的新东西或者改一改父类的旧方法(重写)。二.继承的格式使用代码说明:name是父类的非私有成员属性可以直接赋值。eat是父类的非私有成员方法可以直接调用。三.继承中使用封装(Private)代码说明:name是父类的私有成员属性需要子类继承父类的set方法可以间接赋值。eat是父类的非私有成员方法可以直接调用。四.继承的注意事项在Java中类只支持单继承不允许多继承java中一个父类可以有多个子类java可以有多层次(间接)继承java规定最顶层的父类是Object类(这个类是java定义好的也叫超类)五.继承中成员变量的访问特点1.子父类无同名变量说明:变量访问特点会遵循就近原则因为父类与子类没有相同变量名num1直接访问父类num2直接访问子类。2.子父类同名变量访问(super关键字)说明:变量访问特点会遵循就近原则因为父类与子类有相同变量名所以想访问父类的变量需要添加super关键字。3.子夫类成员变量及局部变量均相同说明:变量访问特点会遵循就近原则因为父类与子类与方法中的临时变量都是相同变量名所以想访问父类的变量需要添加super关键字访问子类的变量需要添加this关键字。六.继承中成员方法的访问特点1.子父类成员方法不同说明:遵循就近原则:在访问成员方法的时候,如果本类有该成员方法,直接使用,如果没有,会继续查找父类逐级查找,只要在其中一级找到就拿过来使用,如果所有层级都没有那么就报错。2.子父类成员方法相同说明:遵循就近原则:在访问成员方法的时候,如果本类有该成员方法,直接使用,如果没有,会继续查找父类逐级查找,只要在其中一级找到就拿过来使用,如果所有层级都没有那么就报错如果成员方法名相同需要用super关键字调用。七.方法重写Override)重写的由来:当子类需要父类的功能而功能主体子类有自己特有内容时可以重写父类中的方法这样即沿袭了父类的功能又定义了子类特有的内容。方法重写必要条件:重写必须要有继承关系,重写针对的是子类的方法重写父类的方法子类的方法与被重写的父类的方法要保持一致(方法的返回值类型,方法名,形参列表保持一致)子类的方法的权限 父类被重写的方法的权限强制重写说明:实现接口方法、重写父类方法不加能编译但极易埋坑所以行业里统一约定只要是重写一律加 Override。八.抽象类说明:抽象类就是用来当 “父类模板” 的只定规范、存通用代码自己不能造对象逼着子类把没做完的功能补全。核心特点:1.不能new实例化抽象类不能直接 new 抽象类()只能被子类继承。2.可以有抽象方法 普通方法例如:抽象方法abstract 修饰没有方法体只有声明 普通方法有方法体直接写实现。3.包含抽象方法的类必须是抽象类反过来抽象类可以没有抽象方法也能是抽象类。4.子类继承抽象类必须重写所有抽象方法不重写就报错要么子类也改成 abstract 抽象类。5.有构造方法抽象类可以有构造器供子类 super () 调用初始化父类成员格式:abstract class 类名 { }九.抽象方法1.抽象方法:被 abstract 修饰只有方法声明没有方法体 的方法。语法特征没有 {}直接分号结尾public abstract void eat();2.核心特点没有方法体只定义方法名、参数、返回值不写具体业务逻辑。必须放在抽象类 / 接口里普通类不能定义抽象方法。不能被 private、static、final、native 修饰子类继承后必须强制重写除非子类也定义成 abstract 抽象类3.抽象方法的作用定标准、定规范规定子类必须拥有这个功能但不规定怎么实现。强制子类覆写避免漏写功能。支撑多态父类抽象方法 → 子类各自实现 → 父类引用指向子类自动调用子类重写逻辑。十.示例