一、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. 在HearthRanger中使用Silverfish

    I'm new here and have never used this bot before. But a few days ago I tried it and I liked it :) I ...

  2. Java 比较两个字符串的相似度算法(Levenshtein Distance)

    转载自: https://blog.csdn.net/JavaReact/article/details/82144732 算法简介: Levenshtein Distance,又称编辑距离,指的是两 ...

  3. centos 下启动 rabbitmq 报错的解决

    安装 rabbitmq 后进行了一些配置,然后启动服务: service rabbitmq-server start 无法启动.通过 journalctl -xe 查看日志后,有如下日志: ... - ...

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

    https://segmentfault.com/a/1190000016344599

  5. SSM+form表单文件上传

    这里介绍SSM如何配置上传文件 配置springmvc.xml: <!--配置上传下载--> <bean id="multipartResolver" class ...

  6. 【C# in depth 第三版】温故而知新(1) (转)

    声明 本文欢迎转载,原文地址:http://www.cnblogs.com/DjlNet/p/7192354.html 前言 关于这本书(<深入理解C# 第三版>)的详细情况以及好坏,自行 ...

  7. MongoDB 实体映射

    @Id主键,不可重复,自带索引,可以在定义的列名上标注,需要自己生成并维护不重复的约束.如果自己不设置@Id主键,mongo会自动生成一个唯一主键,并且插入时效率远高于自己设置主键.在实际业务中不建议 ...

  8. dbgrideh 中的keylist,picklist的用法

    dbgrideh procedure TForm1.FormCreate(Sender: TObject); begin DBGridEh1.DataSource:=DataSource1; Data ...

  9. Swift3.0添加桥接文件

    注意是在target下不是project !!!纠结了好久表示...... 都这里一直编译错误,找不到该桥接文件,这里也是纠结了好久......最后原因是不能使用下划线就可以了....<表示这是 ...

  10. Java数据结构之TreeMap

    一.源码注释 /** * TreeMap基于NavigableMap 的一个红黑树的实现.TreeMap会根据比较器comparator对键值对的key进行比较进行排序,如果没有比较器就是用key的自 ...