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. 正则表达式match方法和search方法

    正则表达式, //match() 方法可在字符串内检索指定的值 找到返回相关数据,找不到返回null var part = /Box/ig; var str = "this is box,i ...

  2. windbg-windows调试工具来抓端游crash dump

    windbg下载有两种方式: Install WinDbg - Windows drivers | Microsoft Learn 从微软应用商店下载 dump上的windows的局部变量解析部分进行 ...

  3. #region在多种编程语言及IDE中进行代码折叠,包括python msvc++ c#等

    vs/rider中折叠C#代码 在写C#的时候,在visual studio中可以使用#region和#endregion来进行代码折叠,那么在pycharm中是否可以呢? //这里有很多的代码... ...

  4. 4.1 C++ STL 动态链表容器

    List和SList都是C++ STL中的容器,都是基于双向链表实现的,可以存储可重复元素的特点.其中,List内部的节点结构包含两个指针一个指向前一个节点,一个指向后一个节点,而SList只有一个指 ...

  5. React框架运行机制

    React框架运行主流程 1.JSX是JS语言的扩展,被babel编译后,会转换成React.creatElement(),这个方法返回的是一个虚拟DOM. 2.将虚拟DOM渲染到真实DOM的方法是R ...

  6. PHP 会话(Session)实现用户登陆功能

    PHP 会话(Session)实现用户登陆功能 Session 的工作机制是:为每个访客创建一个唯一的 id (UID),并基于这个 UID 来存储变量.UID 存储在 cookie 中,或者通过 U ...

  7. 执行orachk检查数据库环境

    Exadata环境巡检需要执行专有的exachk,而普通Oracle环境可以通过执行orachk来检查集群和数据库相关健康状况. 1.使用orachk检查健康状态 使用root用户执行,期间可能需要多 ...

  8. windows 10 制作招聘系统镜像

    我一直以来都有个想法,就是彻底攻破重装系统这块,但是一直没有时间 没有攻破,今天终于攻破.参考了文章:https://www.cnblogs.com/del88/p/12667087.html 需求: ...

  9. 让python程序一直在window后台进程运行

    一.让python程序后台运行 1.创建一个app.py文件,如 while 1: print(123)2.创建一个set_py.bat文件,里面写 python app.py3.创建一个start_ ...

  10. Linux下SQLPLUS替代工具rlwrap安装使用

    rlwrap工具可以解决linux下sqlplus 提供浏览历史命令行的功能,和删除先前输入错误的字母等问题 1.安装 需要readline包 这个安装光盘就有 [root@asm RedHat]# ...