Java super关键字使用 +案列
1 package com.bytezero.supertest;
2 /*
3 *
4 * super关键字使用
5 * 1.super:理解为 父类的
6 * 2.super可以使用调用:属性,方法,构造器
7 *
8 * 3.super的使用:调用属性,方法,
9 *
10 * 可以在子类的方法或构造器中。通过使用“super.属性的” 或“super.方法”的方式,
11 * 显示的调用父类声明的属性或方法。但是,通常情况下,习惯省略“super.”
12 *
13 * 特殊情况: 当子类与父类定义了同名的属性时:我们想要在子类中调用父类中声明的属性,则必须
14 * 显示的使用:super.属性 的方式,表明调用的是父类中声明的属性
15 *
16 * 特殊情况:当子类重写了父类的方法以后,我们想在子类的方法中调用了父类中被重写的方法时,
17 * 则必须显示的使用:super.方法 的方式,表明调用的是父类中被重写的方法
18 *
19 * 4.super调用构造器 调用父类的 构造器
20 * 1.在子类的构造器中显示的使用"super(形参列表)"的方式,调用父类中声明指定的构造器
21 * 2."super(形参列表)"的方式的使用,必须声明在子类构造器的首行!!
22 * 3.我们在类的构造器中,针对于”this(形参列表)“或”super(形参列表)“,只能二选一,不能
23 * 同时出现。
24 * 4.在构造器的首行,没有先显示的声明,”this(形参列表)“或”super(形参列表)“,则默认调用
25 * 的是父类中空参的构造器:super();
26 * 5.在类的多个构造器中,至少有一个类的构造器中,使用了”super(形参列表)“,调用父类中的构造器
27 *
28 *
29 *
30 */
31 public class SuperTest
32 {
33 public static void main(String[] args) {
34
35 Student s = new Student();
36 s.show();
37
38
39 System.out.println();
40 s.study();
41
42 Student s1 = new Student("Tom",21,"IT");
43 s1.show();
44
45 System.out.println("*******************");
46 Student s2 = new Student();
47
48
49
50
51 }
52 }
1 package com.bytezero.supertest;
2
3 public class Person
4 {
5 String name;
6 int age;
7 int id = 1001; //身份证好
8
9 public Person()
10 {
11 System.out.println("我无处不在");
12 }
13 public Person(String name)
14 {
15 this.name = name;
16 }
17
18 public Person(String name,int age)
19 {
20 this(name);
21 this.age = age;
22
23 }
24 public void eat()
25 {
26 System.out.println("人,吃饭");
27 }
28 public void walk()
29 {
30 System.out.println("人,走路");
31 }
32
33
34
35
36 }
1 package com.bytezero.supertest;
2
3 public class Student extends Person {
4
5 String major;
6 int id = 1002; //学号
7
8 public Student()
9 {
10 super();
11 }
12
13 public Student(String major)
14 {
15
16 this.major = major;
17 }
18 public Student(String name,int age,String major)
19 {
20 // this.name = name;
21 // this.age = age;
22 super(name,age);
23 this.major = major;
24 }
25
26 @Override
27 public void eat()
28 {
29 System.out.println("学生多吃有营养的食物");
30 }
31
32 public void study()
33 {
34 System.out.println("学生:学习知识!");
35 this.eat();
36 super.eat();
37 //this.walk(); //都可以使用 通常 省略
38 //super.walk();
39 walk();
40 }
41
42
43 public void show()
44 {
45 System.out.println("name=" + this.name +",age="+super.age);
46
47 System.out.println("id= " + this.id);
48 System.out.println("id= "+super.id);
49 }
50
51 }

Java super关键字使用 +案列的更多相关文章
- Java super关键字活用
在实际开发中我们要自定义组件,就需要继承自某个组件类,如果我们自定义的这个组件类也需要像被继承的这个组件类一样,拥有丰富的构造方法. 关键字super的作用就更加显得尤为重要了,你可以在堆砌自己自定义 ...
- [Java学习] Java super关键字
super 关键字与 this 类似,this 用来表示当前类的实例,super 用来表示父类. super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法.super 也可以用在子类的子类 ...
- 四. Java继承和多态2. Java super关键字
super 关键字与 this 类似,this 用来表示当前类的实例,super 用来表示父类. super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法.super 也可以用在子类的子类 ...
- java——super关键字、final关键字、throws关键字、访问控制
super关键字: 当父类被重写之后,子类对象无法访问父类被重写的方法,super就是为了解决这个问题: 1.使用super关键字访问父类的成员变量和成员方法: super.成员变量 super.成员 ...
- Java——super关键字
2.3 super关键字 ①super不是引用类型,super中存储的不是内存地址,super指向的不是父类对象. ②super代表的是当前子类对象中的父类型特征. ③什么时候使用super? 类和父 ...
- 《Java基础知识》Java super关键字
super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类. super也有三种用法: 1.普通的直接引用 与this类似,super相当于是指向当前对象的父类,这样 ...
- java super关键字
子类用super操作被隐藏的成员变量和方法 Example5_7.java class Sum { int n; float f() { float sum=0; for(int i=1;i<= ...
- java super关键字和调用父类构造方法
表示父类对象的默认引用 如果子类要调用父类被覆盖的实例方法,可用super作为调用者调用父类被覆盖的实例方法. 使用super调用父类方法 使用super调用父类的构造方法 调用构造方法 本类中调用另 ...
- java多态 -- 猫狗案列
我们用猫狗案例来表明在java中使用多态的好处: class Animal{ public Animal(){} public void eat(){ System.out.println(" ...
- JAVA继承时this和super关键字
JAVA继承时this和super关键字 本文主要讨论在方法前使用this或super关键字时,编译器在什么地方查找对应的函数. 在子类中指定this关键字.首先在本类中查找,如果本类中找不到,再在父 ...
随机推荐
- 超级好用的elementui动态循环菜单
<template> <div> <el-menu @select="selectMenu" :default-active="curren ...
- c#时间格式转换汉字大写
把时间转换为汉字大写 public class DateTimeConvert { public static string ConvertToChineseCapital(DateTime date ...
- 从零开始配置 vim(11)——插件管理
之前我们介绍了基础配置部分和快捷键配置部分.如果你配置了这两个部分,vim已经算是比较好用了.但是作为代码编辑器来讲还是显的比较简陋,用这些配置来完成日常的编码任务会显得力不从心.vim比较强大的一点 ...
- 微信小程序-常用弹窗
官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/ui/interaction/wx.showToast.html showToast ...
- 构建LVS负载均衡集群
LVS即Linux虚拟服务器,目前 LVS 已经被集成到 Linux 内核模块中,该项目在 Linux 内核实现了基于 IP 的数据请求负载均衡调度方案,LVS集群采用IP负载均衡技术和基于内容请求分 ...
- C# 语言程序设计笔记
C#是一种最新的.面向对象的编程语言.它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领 ...
- Java连接kubernates集群最优雅的两种方式
创建maven工程,pom.xml中引入连接k8s的客户端jar包: <properties> <maven.compiler.source>8</maven.compi ...
- iOS测试包的安装方法
iOS测试包根据要安装的机器类型可以分为2种: .app模拟器测试包 .ipa真机测试包 .app模拟器测试包的安装方式 方式一:Xcode生成安装包 1.Xcode运行项目,生成app包 2.将AP ...
- 股价暴跌11% 但是Intel的“王者归来”时刻不远了
当地时间1月25日美国股市盘后,处理器大厂Intel公布了2023财年第四季(截至2023年12月30日为止)及2023财年全年的财报,虽然四季度业绩整体优于分析师的预期,但是2024年第一季的业绩指 ...
- 教你用JavaScript实现背景图像滑动
案例介绍 欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用JavaScript编程实战案例,做一个背景图像滚动效果.滚动鼠标背景图像缩小,下方滑动出现文字.通过实战我们将学会obj. ...