java子类父类概念

java子类父类概念 一、基础概念父类通用公共类抽取多个类的共同属性与方法。子类派生类继承父类并且扩展自己独有的成员。关键字extendsJava继承class 子类 extends 父类{}特点Java只支持单继承一个子类只能有一个直接父类一个父类可以有多个子类。二、继承能继承什么✅ 可以继承• public / protected 的成员变量、成员方法• 非私有普通方法❌ 不能继承1.private 私有属性和方法2.构造方法构造方法不能被继承只能通过super调用3.静态资源本质不参与继承只是可以直接访问三、①super关键字重点super()调用父类构造方法• 必须写在子类构造方法第一行• 如果子类构造没有写super编译器自动补全 super()调用父类无参构造• 一旦父类没有无参构造子类必须手动写super并传入参数② super.成员名访问父类被隐藏的属性、被重写的方法super.name; //父类成员变量super.sayHello(); //父类成员方法四、方法重写Override1.重写条件①父子类关系②方法名、参数列表、返回值完全一致③子类访问权限不能比父类更严格父类protected → 子类不能写成private2.区分• 重载Overload同一个类中方法名相同参数不同• 重写Override父子类之间方法完全一致3.执行规则创建子类对象优先执行子类重写后的方法。五、成员变量隐藏子类和父类同名成员变量• 直接访问优先子类自己的变量• 想要访问父类变量super.变量名六、构造方法执行顺序1.创建子类对象时先执行父类构造再执行子类构造2.执行顺序父类静态代码块 → 子类静态代码块 → 父类构造代码块 → 父类构造方法 → 子类构造代码块 → 子类构造方法七、访问权限小结修饰符 同类 同包 子类 任意类 public √ √ √ √ protected √ √ √ × 默认(空) √ √ × × private √ × × ×八、this 和 super 对比• this代表当前本类对象调用本类构造、本类成员• super代表父类对象调用父类构造、父类成员• 构造方法里this() 和 super() 不能同时出现都必须放在第一行。九、final 对继承的影响1.final 类不能被继承断后代2.final 方法不能被子类重写3.final 变量常量不能二次赋值十、向上转型多态基础父类 对象名 new 子类();• 编译看左边父类运行看右边子类• 只能调用父类中定义的方法不能调用子类独有的方法• 执行的是子类重写后的方法