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关键字使用 +案列的更多相关文章

  1. Java super关键字活用

    在实际开发中我们要自定义组件,就需要继承自某个组件类,如果我们自定义的这个组件类也需要像被继承的这个组件类一样,拥有丰富的构造方法. 关键字super的作用就更加显得尤为重要了,你可以在堆砌自己自定义 ...

  2. [Java学习] Java super关键字

    super 关键字与 this 类似,this 用来表示当前类的实例,super 用来表示父类. super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法.super 也可以用在子类的子类 ...

  3. 四. Java继承和多态2. Java super关键字

    super 关键字与 this 类似,this 用来表示当前类的实例,super 用来表示父类. super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法.super 也可以用在子类的子类 ...

  4. java——super关键字、final关键字、throws关键字、访问控制

    super关键字: 当父类被重写之后,子类对象无法访问父类被重写的方法,super就是为了解决这个问题: 1.使用super关键字访问父类的成员变量和成员方法: super.成员变量 super.成员 ...

  5. Java——super关键字

    2.3 super关键字 ①super不是引用类型,super中存储的不是内存地址,super指向的不是父类对象. ②super代表的是当前子类对象中的父类型特征. ③什么时候使用super? 类和父 ...

  6. 《Java基础知识》Java super关键字

    super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类. super也有三种用法: 1.普通的直接引用 与this类似,super相当于是指向当前对象的父类,这样 ...

  7. java super关键字

    子类用super操作被隐藏的成员变量和方法 Example5_7.java class Sum { int n; float f() { float sum=0; for(int i=1;i<= ...

  8. java super关键字和调用父类构造方法

    表示父类对象的默认引用 如果子类要调用父类被覆盖的实例方法,可用super作为调用者调用父类被覆盖的实例方法. 使用super调用父类方法 使用super调用父类的构造方法 调用构造方法 本类中调用另 ...

  9. java多态 -- 猫狗案列

    我们用猫狗案例来表明在java中使用多态的好处: class Animal{ public Animal(){} public void eat(){ System.out.println(" ...

  10. JAVA继承时this和super关键字

    JAVA继承时this和super关键字 本文主要讨论在方法前使用this或super关键字时,编译器在什么地方查找对应的函数. 在子类中指定this关键字.首先在本类中查找,如果本类中找不到,再在父 ...

随机推荐

  1. Windows10磁盘占用100%和内存占用高

    前言 公司配备了两台电脑,两台电脑都是安装的win10系统,一台是磁盘占用高,另一台是内存可用低. 具体情况如下: 一台外网机 8g内存,安装win10 专业版,开机一天后经常出现内存不够用,但其实都 ...

  2. TienChin-课程管理-添加课程接口

    CourseController.java @PreAuthorize("hasPermission('tienchin:course:create')") @Log(title ...

  3. 遥感图像处理笔记之【Machine Learning CS-433 - Class Project 2 - Road Segmentation - EPFL】

    遥感图像处理学习(8) 前言 遥感系列第8篇.遥感图像处理方向的学习者可以参考或者复刻 本文初编辑于2024年1月2日 本文再编辑于2024年1月4日:附作者改进U-Net网络图片:文字补充说明 20 ...

  4. Visual Studio 2017高级编程(第7版)中文版

    发布一个Visual Studio 2017的编程书籍: 链接:https://pan.baidu.com/s/1-RL9wkNYXwvQOdWrnAsSZQ 提取码:ig0c

  5. NC20667 数学题

    题目链接 题目 题目描述 最近,华东交通大学ACM训练基地的老阿姨被一个数学问题困扰了很久,她希望你能够帮她解决这个问题. 这个数学问题是这样的,给你一个N,要求你计算 gcd(a,b)表示a和b的最 ...

  6. NC14352 旅行

    题目链接 题目 题目描述 小z放假了,准备到R城市旅行,其中这个城市有N个旅游景点.小z时间有限,只能在三个旅行景点进行游玩.小明租了辆车,司机很善良,说咱不计路程,只要你一次性缴费足够,我就带你走遍 ...

  7. mysql 8.0 配置文件my.cnf中文注解【转载】

    ########################################################################### ## my.cnf for MySQL 8.0. ...

  8. Java I/O 教程(十 一) BufferedWriter和BufferedReader

    Java BufferedWriter 类 Java BufferedWriter class 继承了Writer类,为Writer实例提供缓冲. 提升了写字符和字符串性能. 类定义: public ...

  9. vivo 短视频体验与成本优化实践

    作者:来自 vivo 互联网短视频研发团队 本文根据蔡创业.马运杰老师在"2023 vivo开发者大会"现场演讲内容整理而成. 在线点播场景,播放体验提升与成本优化是同等重要的两件 ...

  10. win32- 使用WM_NCPAINT在非客户区域绘制边框

    #pragma comment(lib, "UxTheme") #include <windows.h> #include <uxtheme.h> LRES ...