精华内容
下载资源
问答
  • 介绍:this:当前对象 super:直接父类对象 this():当前类的无参构造方法,也...注意:1,当在方法内调用一个变量b,编译器会向上遍历,直到找到最近的一个引用变量为止:b—>this.b—>super.b,如果未找 到,编译器

    介绍

    • this:当前对象
    • super:直接父类对象
    • this():当前类的无参构造方法,也可以指定有参的如:this(a)
    • super():直接父类的无参构造方法,也可以指定有参的如:super(a)

    注意

    1,当在方法内调用一个变量b,编译器会向上遍历,直到找到最近的一个引用变量为止:b—>this.b—>super.b,如果未找到,编译器将显式提示错误信息;

    2,当变量b的定义只发生在父类时,此时  b=this.b=super.b;

    3,当局部变量b覆盖成员变量b时,使用this.b调用成员变量,此时的成员变量包括子类新增和继承的变量,不包含隐藏变量;

    4,当子类成员变量b覆盖父类成员变量b时,使用super.b调用这个被隐藏的成员变量;

    5,当子类重写了父类方法method(),可以使用super.method()来调用父类被隐藏的方法;

    6,super()与this()具备硬性使用条件,否则编译无法通过——Constructor call must be the first statement in a constructor.即 二者出现的位置必须是构造方法的第一行

    7,super()与this()并不像super.b与this.b一样可以向下替代,因为子类并不能继承父类的构造方法,仅仅是包含了父类的有参或无参构造器(默认无参);

    8,Implicit[不言明的,隐式的] super constructor Subject() is undefined. Must explicitly[明确地] invoke another constructor,这句话表明 —— 子类的构造方法中必须调用父类的构造方法,如果没有显式写出super(),则默认调用父类的无参构造方法。但此时如果父类写了有参的构造方法,编译器就不会再为父类默认创建无参构造方法,此时super()没有被定义,则必须在子类的构造方法中写明super(参数)或者在父类中显式写出父类的无参构造方法;

    实例

    父类

    public class Subject{    
        public String a="我是父类全局变量a";  
          
        public String b="我是父类全局变量b";  
          
        public void operation(){  
            System.out.println("我是父类方法");  
        };   
        public void operation1(){  
            System.out.println("我是父类方法");  
        };   
    }   

    子类

    public class MySubject extends Subject {    
        public String b="我是子类全局变量b";  
        @Override    
        public void operation() {    
            System.out.println(a);  
            System.out.println(this.a);  
            System.out.println(super.a);  
        }    
        @Override    
        public void operation1() {    
            String b="我是局部变量b";  
            System.out.println(b);  
            System.out.println(this.b);  
            System.out.println(super.b);  
        }    
          
        public static void main(String[] args) {  
            Subject sub=new MySubject();  
            sub.operation();    
            sub.operation1();    
              
        }   
    } 

    运行结果

    我是父类全局变量a  
    我是父类全局变量a  
    我是父类全局变量a  
    我是局部变量b  
    我是子类全局变量b  
    我是父类全局变量b

     

     
    展开全文
  • super与this的区别:

    千次阅读 2009-10-31 23:15:00
    super与this的区别: 1,构造函数:super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)。EX:super(name,age)this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。EX:...

    super与this的区别:

     

    1,构造函数:

    super(参数):调用 基类中的某一个构造函数(应该为构造函数中的第一条语句)。EX:super(name,age)
    this(参数):调用 本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。EX:this(sex,birthday)
    2, 调用
    super:它引用当前对象的直接 父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与
    派生类中有相同成员定义时) . EX: super.method1();super.name1;
    this:它代表当 前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中
    的成员数据同名,这时需用this来指明成员变量名). this.name = name;
    展开全文
  • super与this关键字的区别

    万次阅读 2021-02-25 15:59:51
  • super与this的应用比较:(super代表的是父类对象,this代表的是当前对象) (1)this常用来方便用户对程序的初始化和对当前对象成员方法的调用 (2)super用来建立父类对象子类对象之间的链接;构造方法在...

    super与this的应用比较:(super代表的是父类对象,this代表的是当前对象)
    (1)this常用来方便用户对程序的初始化和对当前对象成员与方法的调用
    (2)super用来建立父类对象与子类对象之间的链接;构造方法在子类中无法继承,则带参数的构造方法无法用 父类(int,int)使用,但可用super(int,int)来实现;
    class Point

    { private int x,y;

    public Point(int x,int y)

    {

        this.x=x; //this它代表当前对象名

        this.y=y;

    }

    public void Draw()

    {

    }

    public Point()

    {

    this(0,0); //this(参数)调用本类中另一种形成的构造函数

    }

    }

    class Circle extends Point

    {

    private int radius;

    public circle(int x0,int y0, int r )

    {

    super(x0,y0); //super(参数)调用基类中的某一个构造函数

    radius=r;

    }

    public void Draw()

    {

    super.Draw(); //super它引用当前对象的直接父类中的成员

    drawCircle();

    }}

    展开全文
  • super关键字用来访问父类内容,而this关键字用来访问本类内容,用法有三种: 在本类的成员方法中,访问本类的成员变量 在本类的成员方法中,访问本类的另外一个成员方法 在本类的构造方法中,访问本类的另外一个...
  • 1. 方法重载方法复写的区别 英文单词 Overloading Override 概念 方法名称相同,参数的个数或者类型不同 方法名称相同,参数的个数和类型相同,方法的访问权限不能更...2. super与thi
  • 关于java中super与this的简单理解

    千次阅读 2013-03-11 18:38:32
    在Java中,有时会遇到子类中的成员变量或方法父类中的成员变量或方法同名。因为子类中的成员变量或方法名优先级高,所以子类中的同名成员变量或方法就隐藏了父类的成员变量或方法,但是我们如果想要使用超类中的这...
  • Java中super关键字、super关键字与this关键字的区别

    千次阅读 多人点赞 2018-10-21 16:31:33
    文章目录1 super关键字1.1 super用于方法1.1.1 用于构造方法1.1.2 用于普通方法1.1.2 用于属性2 super与this关键字的区别2.1 概念上2.2 查找范围2.3 特殊之处 1 super关键字 1.1 super用于方法 1.1.1 用于构造...
  • package com.cj.study.thissuper; public class Student{ public String name; public void setName(String name) { this.name = name; } public String getName() { return name; } } ...
  • javathissuper用法 thissuper 关键字的区别
  • super,this的区别

    2013-02-21 00:52:59
    super,this的区别super,this的区别
  • this与super

    万次阅读 2015-11-14 17:18:40
    this super 访问属性 this.属性名。只能访问当前对象所拥有的属性(包括继承来的属性,如果继承的属性名和子类对象相同,若不指定则调用子类的,调用父类的需要显示指定:super.属性名) super.属性名。...
  • superthis的区别

    千次阅读 2015-09-13 12:57:34
    superthis的异同: 1)super(参数):调用基类中的某一个构造... 3)super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类派生类中有相同成员定义时如:super.变量名
  • superthis

    千次阅读 2007-03-16 13:45:00
    在继承的结构中,subclass可以通过super来调用superclass的方法,通过this来调用自己本身的方法.其实superthis有很大的区别,根据java的定义,this是一个指向本对象的指针, 然而super是一个java关键字.
  • this与super的区别

    千次阅读 2019-01-03 10:59:01
    1.this与super继承关系 当子类创建对象后,该子类对象本身可以使用this来指代,而该对象当中的父类对象空间可以使用super来指代 示例: 所以继承关系图: 2.this与super调用普通成员与构造方法 调用普通成员 ...
  • this super

    千次阅读 2011-11-08 06:16:56
    thissuper的区别 No. 区别 this super 1 操作属性 this.属性:表示调用本类中的属性,如果本类中的属性不存在,则从父类查找 super.属性:表示调用父类中的属性 ...
  • superthis 的区别

    千次阅读 2019-03-02 17:50:04
    super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参) this:它代表当...
  • this关键字与super关键字详解

    万次阅读 多人点赞 2018-02-02 12:17:03
    一.this关键字 1.实例一: (1)需求:使用Java类描述一个动物; (2)实例: class Animal{ String name; //成员变量 String color; public Animal(String n,String c){ name = n; color = c; } ...
  • java superthis 关键字的区分和使用

    千次阅读 多人点赞 2018-10-10 16:07:46
    java superthis 关键字的区分和使用 在java类中使用super来调用父类中的指定操作: super可用于访问父类中定义的属性 super可用于调用父类中定义的成员方法 super可用于在子类构造方法中调用父类的构造器 ...
  • java中thissuperthis()、super()的用法和区别

    千次阅读 多人点赞 2018-05-08 12:26:42
    this关键字:一.this是什么? this是一个引用类型, 在堆中的每一个java对象上都有thisthis保存内存地址指向自身。二.thisthis()能用在哪些地方?this可以用在成员方法中.this()可以用在构造方法中.语法: ...
  • this super 用途

    千次阅读 2011-08-21 09:16:55
    this super 用途 一、this用途: 一是引用隐式参数,二是调用该类其他的构造器。 二、super用途: 一是调用超类的方法,二是调用超类的构造器 三、用法举例 package com.test.xqh; public class ...
  • 【java】this()与super()使用详解

    万次阅读 多人点赞 2018-01-10 16:36:20
    this调用属性、调用方法、利用this表示当前对象。 this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。 this的用法在java中大体可以分为3种: 1.普通的直接引用 这种就...
  • thissuper

    千次阅读 2015-04-17 16:08:44
    在使用superthis关键字时,以下描述正确的是(A) A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过 B) super()和this()不一定要放在构造...
  • super关键字和与this关键字的区别

    千次阅读 2018-03-31 17:48:29
    功能:调用父类中的方法或属性 1.调用父类中的同名方法 class Person{ public void print(){//4. System.out.println("1.父类"... super.print();...
  • Java中superthis关键字的使用

    千次阅读 2019-05-23 14:18:17
    在使用superthis关键字时, 以下描述正确的是() A. 在子类构造方法中使用super()显示调用父类的构造方法, super()必须写在子类构造方法的第一行, 否自编译不通过 B. super() 和 this() 不一定要放在构造方法内的第...
  • Java中this与super的区别

    万次阅读 多人点赞 2016-12-05 23:23:39
    this与super关键字在java中构造函数中的应用: **super()函数** super()函数在子类构造函数中调用父类的构造函数时使用,而且必须要在构造函数的第一行,例如:class Animal { public Animal() { System.out....
  • system verilog中superthis用法示例

    千次阅读 2020-11-27 15:30:03
    在system verilog中经常会遇到superthissuper用来获取超类的成员变量、函数等,this作用是先在当前作用域内寻找对应的参数,接着在上一级作用内寻找,直到找到该变量为止. 1.定义new_reg_xaction和new_xaction ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,126,814
精华内容 450,725
关键字:

super与this