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. 在web中,用户输入的文字过多 和页面排版一行显示不下 怎么办

    在写管理系统中, 如果用户在input中,表单输入过多,应该如何去处理 常用的解决办法是: 1==>用户只能够输入一定范围内的字数 2==>超出几个字后(宽度)使用省略号显示. 3==&g ...

  2. js解析上传APK文件的详细信息

    前端解析APK版本信息 需要安装这个包,可以使用cnpm或者npm npm 安装 app-info-parser ( 命令:npm install app-info-parser) APKInfo为i ...

  3. 动态添加input,然后获取所有的input框中的值

    今天遇见一个问题. 点击按钮,动态添加input框(可以添加多个) 然后搜集用户在input中输入的值. 我刚刚在纠结,给input框中注入事件. 但是这样会很麻烦. 经过同事的指点. 我直接去拿v- ...

  4. 微信对话平台API开发

    接入官方文档接入文档 下面我们开始使用前端来进行接入 <!DOCTYPE html> <html> <head> <meta charset="UT ...

  5. 从零开始配置vim(26)——LSP UI 美化

    之前我们通过几个实例演示如何配置其他语言的lsp服务,相信各位小伙伴碰到其他的编程语言也能熟练的配置它对应的lsp服务.本篇讲作为一个补充,我们来优化一下LSP 相关的显示 配置 UI 原始的 lsp ...

  6. Celery Worker log 中记录 task_id

    import inspect import logging import threading from logging import Logger as Logger, LogRecord from ...

  7. 基于队列实现生产者消费者(Python)

    # 进城之间数据隔离 # 进程之间通信(IPC) Inter Process communication # 基于文件 :同一台机器上的多个进程之间通信 # Queue 队列 # 基于socket的文 ...

  8. Linux提取日志中的IP地址并去重

    原日志文件:logger.log  内容: {"peer":"kts_001","type":"http"," ...

  9. 【阅读笔记】对比度增强-《Efficientcontrast enhancement using adaptive gamma correction with weighting distribution 》 date: 2023-12-08 10:08:00

    2013年发表在TIP上的对比度增强算法AGCWD(Efficient contrast enhancement using adaptive gamma correction with weight ...

  10. Linux centos7.6 在线及离线安装postgresql12 详细教程(rpm包安装)

    一.在线安装 官网找到对应的版本 PostgreSQL:  https://www.postgresql.org/ 1.配置yum源 sudo yum install -y https://downl ...