首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第一章:OOP:继承
第二章:关键字 super
第三章:关键字 static
第四章:成员变量初始化
第五章:OOP:多态
第六章:关键字 native
第七章:关键字 final
第八章:Object 类的使用
第九章:抽象类
第十章:接口
第十一章:经典接口介绍
第十二章:包装类
第十三章:内部类
当前位置:
首页>>
技术小册>>
Java语言基础6-面向对象高级
小册名称:Java语言基础6-面向对象高级
2.1 概述 - 在 Java 类中使用super来调用父类中的指定操作: - super 可用于访问父类中定义的属性。 - super 可用于调用父类中定义的成员方法。 - super 可用于在子类构造器中调用父类的构造器。 注意: - 当子类和父类出现同名成员的时候,可以用 super 表明调用的是父类的成员。 - super 的追溯不仅限于直接父类 。 - super 和 this 的用法很像,this 代表的是本类对象的引用,super 代表的是父类的内存空间的标识。 2.2 调用父类的构造器 - ① 子类中所有的构造器 默认 都会访问父类中的 无参 构造器。 - ② 当父类中没有无参构造器的时候,子类的构造器必须通过 this(参数列表) 或 super(参数列表) 语句指定调用本类或父类中相应的构造器。同时,只能 二选一 ,并且放在构造器的首行。 - ③ 如果子类构造器既没有显示调用父类或本类的构造器,且父类中又没有无参构造器,则 编译报错 。 2.3 应用示例 - 示例:super 调用方法 ```bash package com.github.inherit.demo6; /** * @author maxiaoke.com * @version 1.0 */ public class Person { protected String name = "张三"; protected int age; public String getInfo() { return "姓名:" + this.name + ",年龄" + this.age; } } ``` ```bash package com.github.inherit.demo6; /** * @author maxiaoke.com * @version 1.0 */ public class Student extends Person { private final String school = "中国社会大学"; protected String name = "李四"; @Override public String getInfo() { this.age = 18; return super.getInfo() + ",学校:" + this.school; } } ``` ```bash package com.github.inherit.demo6; /** * * @author maxiaoke.com * @version 1.0 */ public class StudentTest { public static void main(String[] args) { Student student = new Student(); System.out.println("student.getInfo() = " + student.getInfo()); } } ``` 示例:super 调用父类的构造器 ```bash package com.github.inherit.demo7; import java.util.Date; /** * @author maxiaoke.com * @version 1.0 */ public class Person { private final String name; private final int age; private final Date birthDate; public Person(String name, int age, Date birthDate) { this.name = name; this.age = age; this.birthDate = birthDate; } public Person(String name, int age) { this(name, age, null); } public Person(String name, Date birthDate) { this(name, 0, birthDate); } public Person(String name) { this(name, 0, null); } @Override public String toString() { return "name='" + this.name + '\'' + ", age=" + this.age + ", birthDate=" + this.birthDate; } } ``` ```bash package com.github.inherit.demo7; /** * @author maxiaoke.com * @version 1.0 */ public class Student extends Person { private final String school; public Student(String name, int age, String school) { super(name, age); this.school = school; } @Override public String toString() { return super.toString() + ", school='" + this.school; } } ``` ```bash package com.github.inherit.demo7; /** * @author maxiaoke.com * @version 1.0 */ public class StudentTest { public static void main(String[] args) { Student student = new Student("张三", 18, "社会大学"); System.out.println(student); } } ``` 2.4 this 和 super 的区别 ![](/uploads/images/20230724/d141ad276a7a38994ab45c1cc81cc537.png)
上一篇:
第一章:OOP:继承
下一篇:
第三章:关键字 static
该分类下的相关小册推荐:
Java语言基础13-类的加载和反射
SpringBoot零基础到实战
Java高并发秒杀入门与实战
Java语言基础9-常用API和常见算法
Java必知必会-JDBC
Java语言基础4-数组详解
Java语言基础5-面向对象初级
Mybatis合辑5-注解、扩展、SQL构建
Java语言基础3-流程控制
Java必知必会-Maven高级
深入拆解 Java 虚拟机
Java并发编程实战