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关键字.首先在本类中查找,如果本类中找不到,再在父 ...
随机推荐
- mysql系列基础篇01---通用的语法及分类
通用语法及分类 DDL: 数据定义语言,用来定义数据库对象(数据库.表.字段) DML: 数据操作语言,用来对数据库表中的数据进行增删改 DQL: 数据查询语言,用来查询数据库中表的记录 DCL: 数 ...
- Python笔记四之协程
本文首发于公众号:Hunter后端 原文链接:Python笔记四之协程 协程是一种运行在单线程下的并发编程模型,它的特点是能够在一个线程内实现多个任务的并发操作,通过在执行任务时主动让出执行权,让其他 ...
- 设计模式学习-使用go实现解释器模式
解释器模式 定义 优点 缺点 适用范围 代码实现 参考 解释器模式 定义 解释器模式(interpreter):给定一种语言,定义它的文法的一种表示,并定一个解释器,这个解释器使用该表示来解释语言中的 ...
- C/C++ Qt 使用JSON解析库 [修改篇]
JSON是一种轻量级的数据交换格式,它是基于ECMAScript的一个子集,使用完全独立于编程语言的文本格式来存储和表示数据,简洁清晰的的层次结构使得JSON成为理想的数据交换语言,Qt库为JSON的 ...
- 基于.NET的机械运动模拟应用开发
1 简介 机械运动在物理学中,把一个物体相对于另一个物体位置的变化称作为机械运动,简称运动.机械运动是指一个物体相对于其他物体的位置发生改变,是自然界中最简单,最基本的运动形态. 自然界中一切物体都在 ...
- SpringBoot基于Spring Security的HTTP跳转HTTPS
简单说说 之所以采用Spring Security来做这件事,一是Spring Security可以根据不同的URL来进行判断是否需要跳转(不推荐), 二是不需要新建一个TomcatServletWe ...
- workman在线五子棋
一.下载安装workman,地址:https://github.com/walkor/workerman composer require workerman/workerman 二.cd到worke ...
- CF452F Permutation 与 P2757 [国家集训队] 等差子序列 题解
两道基本一样的题: 题目链接: P2757 [国家集训队] 等差子序列 Permutation 链接:CF 或者 洛谷 等差子序列那题其实就是长度不小于 \(3\) 的等差数列是否存在,我们考虑等于 ...
- 哈希表(HashMap)与字符串哈希
哈希表 哈希表是一种通过映射来快速查找的数据结构.其通过键值对(key-value)来存储.一个数据通过哈希函数的运算来生成一个属于他自己的键值,尔后将其与键值绑定.当我们想查找这个数据时,就可以直接 ...
- NC235745 拆路
题目链接 题目 题目描述 有 \(n\) 个城镇,城镇之间有 \(m\) 条道路相连,道路可以看成无向边.每一个城镇都有自己的一个繁荣度 \(v_i\) ,一个城镇 \(u\) 受到的影响 \(p\) ...