一、super()与this()

  1、super():

    • 只能出现在子类构造器中
    • 且必须位于第一行。
    • 所有子类构造器默认调用super()方法
    • 参数决定使用父类哪一个构造器。
    • 若父类没有相应的构造器,则报错。 

  2、this():

    • 只能出现在本类的构造器中
    • 且必须位于第一行
    • 用于调用本类中其他构造方法
    • 不能与super()同时出现在一个构造方法中

二、super、this关键字

  1、this

    • 指向当前对象本身
    • 形参与成员名重名,用于区分
    • this()

  2、super

    • 指向本类的引用
    • 子类的成员变量或方法与父类中的成员变量或方法重名,用于区分
    • super()

三、特别说明

  1、子类继承父类所有的属性和方法(构造方法除外;private可以说没有继承,也可以说继承了但是没有访问权限)

  2、子类实例化时,先实例化父类再实例化子类自己(先调用父类构造器,再调用子类构造器)

  3、在子类中创建构造器时,必须调用父类的构造器(默认调用父类的无参构造器)。

  4、static环境中不可在使用this、super关键字

四、代码

public class Demo1 {

    static int value = 9; // 注意value是静态的成员变量

    public static void main(String[] args) throws Exception {
new Demo1().printValue();
} private void printValue() {
int value = 69;
System.out.println(this.value);
}
} 结果: 9

Java super与this的更多相关文章

  1. Java super关键字活用

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

  2. java <? super Fruit>与<? extends Fruit>

    package Test2016; import java.util.ArrayList; import java.util.List; public class Test2016 { public ...

  3. Java super与this用法解析

    1.     子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base" ...

  4. java super关键字

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

  5. java super和this总结

    今天群里有人问我怎么复写父类的构造函数,我当时听错了以为是一般方法,然后就对他说只要同名就可以,然后他告诉我错了,我再仔细看,才知道他问的是复写 父类的构造方法,其实自己也不知道子类能不能复写父类的构 ...

  6. java super的用法

    通过用static来定义方法或成员,从某种程度上可以说它类似于C语言中的全局函数和全局变量. this&super这两个关键字的意义和用法. 在Java中,this通常指当前对象,super则 ...

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

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

  8. Java super和this

    this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. this的用法在java中大体可以分为3种: 1.普通的直接引用 这种就不用讲了,this相当于是指向当前对象本 ...

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

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

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

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

随机推荐

  1. react-native(ios)简单配置环境(mac)

    1.首先全局安装react-native-cli npm install -g react-native-cli 2.安装xcode(appStore) 3.打开xcode,检查一下是否装有某个版本的 ...

  2. C++ STL——deque

    目录 一 deque容器 1.1 deque容器基本概念 1.2 deque构造函数 1.3 deque赋值操作 1.4 deque大小操作 1.5 deque双端插入和删除操作 1.6 deque数 ...

  3. CentOS7 源码安装 PostgreSQL 12

    PostgreSQL 12 源码安装 Table of Contents 1. 下载 2. 准备环境 3. 编译安装 4. 设置环境变量 5. 初始化数据库 6. 配置参数文件 6.1. postgr ...

  4. 终端less命令执行完之后怎样退出

    Linux中的less命令主要用来浏览文件内容,与more命令的用法相似,不同于more命令的是,less命令可往回卷动浏览以看过的部分,less 的用法比起 more 更加的有弹性.如果想退出les ...

  5. 阿里云安装 fastdfs 总结

    还要开放 23000  22122,添加进安全组

  6. vue 面试题(文章末尾还有其他链接)

    https://segmentfault.com/a/1190000016344599

  7. unix进程通信方式总结(上)(转)

    本文将<unix环境高级编程>一书中所涉及的几种重要的进程间通信方式(Inter-Process Communication)进行简单总结,总的来说,进程间通信有以下几种:        ...

  8. oracle数据ORA-03113:通信通道的文件到达结尾的简单处理方式

    <ORA-03113:通信通道的文件结尾>错误处理: 出现的主要原因是由于归档日志空间不够了. 解决办法: --以sysdba方式登录 sqlplus / as sysdba --关闭数据 ...

  9. mariadb数据库(1)

    一.什么是数据库? 简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以通过数据库提供的多种方法来管理数据库里的数 ...

  10. CACTI批量添加linux主机sh脚本

    关于批量添加就三个文件:add_hosts.sh,ips.txt,thold_test.php,关于如何使用,更是简单 ./add_hosts.sh --add #执行批量工作./add_hosts. ...