Java面向对象继承、this与super关键字实例详解
作者:2601_96363441
简介:继承是Java面向对象三大特性之一,也是实现代码复用、构建类层级关系、实现多态的核心基础。本文详细梳理继承核心规则、this和super关键字用法、方法重写规范,内容精简干货满满,适合新手学习、期末复习与面试复盘。
一、继承核心概念与特性
继承是Java面向对象三大核心特性之一,核心作用是实现代码复用、减少冗余代码,让类与类之间形成层级从属关系。Java通过 extends 关键字完成继承定义,语法上严格遵循单继承机制:一个子类只能直接继承一个父类,但一个父类可以被多个子类继承,有效规避了多继承带来的逻辑冲突。子类继承父类后,可直接使用父类中非私有(非private)的成员变量和成员方法,父类私有成员仅能在父类内部访问,无法被子类继承和调用。除此之外,继承是Java实现多态机制的核心前提,为后续程序拓展提供了基础支撑。
继承基础代码示例
// 父类
class Father {
// 非私有成员,可被子类继承
public String name = "父类成员";
public void show() {
System.out.println("父类通用方法");
}
// 私有成员,无法被子类继承
private void privateMethod() {
System.out.println("父类私有方法");
}
}
// 子类继承父类
class Son extends Father {
// 子类独有成员
public int age = 18;
}
public class Test {
public static void main(String[] args) {
Son son = new Son();
// 调用继承的父类成员
System.out.println(son.name);
son.show();
// 调用子类自身成员
System.out.println(son.age);
}
}二、this与super关键字核心用法
在Java继承体系中,this 和 super 是一对核心关键字,分别对应本类和父类的资源调用,精准解决了继承中的成员调用冲突问题。this 代表当前本类对象,可用于调用本类的成员变量、成员方法、本类构造方法,用于区分局部变量和成员变量。super 代表父类对象,专门用于访问父类的属性、普通方法和构造方法。重点规则:子类的所有构造方法中,第一行都会默认隐藏 super() 无参构造语句,会优先执行父类无参构造,完成父类资源初始化,再执行子类构造逻辑,保证继承体系的完整性。
this、super 关键字代码示例
class Father {
public String info = "父类属性";
public Father() {
System.out.println("父类无参构造执行");
}
}
class Son extends Father {
public String info = "子类属性";
public Son() {
// 默认隐藏 super(),优先调用父类无参构造
System.out.println("子类构造执行");
}
public void showInfo() {
this.info; // 调用本类(子类)属性
super.info; // 调用父类属性
System.out.println("本类属性:" + this.info);
System.out.println("父类属性:" + super.info);
}
}
public class TestDemo {
public static void main(String[] args) {
new Son().showInfo();
}
}**
三、方法重写核心规则
**
方法重写(Override)是子类基于继承拓展功能的核心操作,指子类对父类中已有的非私有、非静态、非final普通方法进行重新实现,用于适配子类独有的业务逻辑,让方法功能更贴合子类特性。方法重写有严格的语法规范:子类重写方法的访问权限不能比父类更严格(如父类public,子类不能改为protected/private),且方法名、参数列表、返回值必须与父类保持一致。核心禁忌:父类被private修饰的私有方法无法被重写,仅为父类内部使用。合理的方法重写是实现多态、提升程序拓展性的关键。
方法重写代码示例(含权限规则演示)
class Animal {
// 父类公共方法,允许重写
public void eat() {
System.out.println(“动物进食”);
}
// 私有方法,无法被重写
private void sleep() {
System.out.println(“动物睡觉”);
}
}
// 子类重写父类方法
class Cat extends Animal {
// 重写父类方法,权限与父类一致(合法)
@Override
public void eat() {
// 子类独有业务逻辑
System.out.println(“小猫吃鱼干”);
}
}
public class OverrideTest {
public static void main(String[] args) {
Animal animal = new Cat();
// 运行子类重写后的方法
animal.eat();
}
}四、核心知识点总结*
继承核心:通过extends关键字实现,Java仅支持单继承,核心价值是代码复用、消除冗余;
- 继承范围:子类仅继承父类非私有成员,private私有成员无法被继承和直接访问;
- 关键字作用:this指代当前本类对象,super指代父类对象;子类构造默认优先执行super()调用父类无参构造;
- 重写规则:子类重写父类非私有方法,权限不能比父类严格,私有方法、静态方法、final方法不可重写;
- 核心关联:继承构建类的层级关系,是Java实现多态机制的必要前置条件。
到此这篇关于Java面向对象继承、this与super关键字实例详解的文章就介绍到这了,更多相关Java this与super关键字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
