super 订阅
刘超是唱歌、创作、舞台表演全能艺人。2005踏上学习音乐的追梦之旅,2010快乐男声网络直通区20强选手。 展开全文
刘超是唱歌、创作、舞台表演全能艺人。2005踏上学习音乐的追梦之旅,2010快乐男声网络直通区20强选手。
信息
国    籍
中国
出生地
湖北
现    居
北京
代表作品
梦开始的地方
体    重
56公斤
学    校
现就读于北京演艺学院
出生日期
01月01日
性    格
活泼,耍酷
中文名
刘超
民    族
专    业
音乐制作,流行演唱
身    高
173公分
性    别
外文名
super
星    座
摩羯座
文化程度
本科
sqoop特征
收起全文
精华内容
下载资源
问答
  • super

    千次阅读 2015-12-14 11:52:09
    [super viewDidLoad]; // 调用父类(super)的方法

    [super viewDidLoad]; // 调用父类(super)的方法

    展开全文
  • package com.cj.study.thissuper; public class Student{ public String name; public void setName(String name) { this.name = name; } public String getName() { return name; } } ...

    铁子们,快扫码关注啦!或 wx搜索:“聊5毛钱的java”,关注可领取博主的Java学习视频+资料,保证都是干货

    今天就用最通俗易懂的大白话来聊一聊Java中的this和super以及this()和 super()

    1、this关键字

    package com.cj.study.thissuper;
    
    public class Student{
    	
    	public String name;
    
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	public String getName() {
    		return name;
    	}
    
    }
    

    上述代码是很常见的javabean的定义,里边经常会出现this这个关键字

    那有思考过为什么这里需要用this这个关键字吗?

    为了更简单的解释这个问题,将上述的代码改一下

    把set方法里的this.name的this去掉,变成了name=name,就会发现个问题,这2个name都是局部变量的name,这就变成了局部变量给局部变量赋值了, 但是咱们是想给对象的name赋值,并不是想给局部变量赋值,由于名称一样导致区分不出来了

    所以必须用this来区分一下;当然如果两个不重名的话,name=nnn 这种的不加this是没问题的,这是因为它是先在局部找变量,如果找到了就用局部变量,没找到就去找全局变量。

    那这个this到底是啥呢?

    this是当前对象的引用,就是说当前用构造函数建的对象是谁,这个this就代表谁,它是一个引用

    另外一个问题,如果构造函数想调用另一个构造函数该怎么办呢?

    这个时候就需要使用this()了

    注意:如果在构造函数里调用其他重载的构造函数时,则,被调用的那个构造函数必须放在代码的第一行

    下边是示例:

    正确的

    错误的

    2、super关键字

    上述例子是父类里定义了一个字段是num,子类里没有定义,所以最后的输出结果是showNum=4

    但是如果子类也定义了一个num值为5,那打印出来的一定是5,因为在调用成员(成员变量和成员方法)时如果不特殊标明,前边其实默认省略了this,他默认调用的是子类的

    但是如果这时候我就想用父类的不想用子类的,怎么办

    这时候又出现了区分不出来的情况,所以要用super来标明你要调用父类的,而不是子类的

    当只有父类有,子类没有的情况下,则调的是父类的(因为子类继承了父类,子类就拥有了父类除了私有外的所有东西)

    当父类和子类都有的情况下,默认调用的是子类的,但是用super标明了以后调的是父类的

    如上图所示,this和super的引用是这样指向对象的成员变量和方法:

    this不仅指向了子类的成员变量和方法,它还指向了子类从父类继承过来的变量和方法

    而super仅仅只是指向了子类从父类继承的成员变量和方法。

    那如果子类构造函数想调用父类的构造函数,怎么办?

    这时候就要用到super();了

    *****注意:在子类的构造函数里都必须去调用父类的构造函数,你不写其实第一行都有一个隐式的super();

    如果父类里不定义无参的构造的话子类的构造函数会报错,所以说明在子类的构造函数默认的都有一句隐式的super();

    你的构造函数里默认的都有一个隐式的super();去调用父类无参的构造,但是如果你的构造函数里不想调用默认的父类无参构造,而是想调用父类其他的构造函数,则你可以显式的写出来,而且如果你写了则调用父类的supper(xxx) 必须放在第一行

    以上就是对this和super的一些总结,可能有点乱,但是还是希望对大家有所帮助

    铁子们,如果觉得文章对你有所帮助,可以点关注,点赞

    也可以关注下公众号:扫码或 wx搜索:“聊5毛钱的java”,欢迎一起学习交流,关注公众号可领取博主的Java学习视频+资料,保证都是干货

    3Q~

    纯手敲原创不易,如果觉得对你有帮助,可以打赏支持一下,哈哈,感谢~

               

    展开全文
  • python中super().__init__()

    万次阅读 多人点赞 2020-03-01 21:55:12
    super().__init__() 1、子类构造函数调用super().__init__()1.1、第一个直接继承父类,可以调用name1.2、第二个继承自父类,覆盖初始化化def init,增加属性age,不能调用name属性1.3、第三个继承自父类,覆盖...

    python里的super().init()有什么用?

    对于python里的super().__init__()有什么作用,很多同学没有弄清楚。

    简单的说super().__init__(),就是继承父类的init方法,同样可以使用super()去继承其他方法。

    下面是三种不同的继承、调用,对比他们的区别,搞清楚super().__init__()的用途。

    1、从实例中对比(python3)

    1.1、实例

    在这里插入图片描述

    子类名称继承内容
    Puple继承所有
    Puple_Init继承,但覆盖了init方法
    Puple_Super继承,但覆盖了init方法,并在init里面添加了super().__init__()

    1.2、运行结果与对比

    在这里插入图片描述

    1.3、完整代码

    在这里插入图片描述

    2、关于继承顺序

    最底层:先写一个父类A

    class A:
        def __init__(self):
            print('A')
    

    第二层:让 B、C、D 继承自A

    class B(A):
        def __init__(self):
            print('B')
            super().__init__()
    
    class C(A):
        def __init__(self):
            print('C')
            super().__init__()
    
    class D(A):
        def __init__(self):
            print('D')
            super().__init__()
    

    第三层: E、F、G 继承

    class E(B, C):
        def __init__(self):
            print('E')
            super().__init__()
    
    class F(C, D):
        def __init__(self):
            print('F')
            super().__init__()
    
    class G(E, F):
        def __init__(self):
            print('G')
            super().__init__()
    

    看看G的继承顺序
    在这里插入图片描述
    在这里插入图片描述
    我们发现G继承自E, F是并列的,初始化的时候不会先把E初始化完毕才初始化F。

    3、super() 在 python2、3中的区别

    Python3.x 和 Python2.x 的一个区别: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx :

    例:
    python3 直接写成 : super().__init__()
    python2 必须写成 :super(本类名,self).__init__()

    Python3.x 实例:

    class A:
         def add(self, x):
             y = x+1
             print(y)
    class B(A):
        def add(self, x):
            super().add(x)
    b = B()
    b.add(2)  # 3
    

    Python2.x 实例:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    class A(object):   # Python2.x 记得继承 object
        def add(self, x):
             y = x+1
             print(y)
    class B(A):
        def add(self, x):
            super(B, self).add(x)
    b = B()
    b.add(2)  # 3
    
    展开全文
  • Java中super()的使用

    万次阅读 多人点赞 2018-09-12 22:10:18
    1.super()的使用实例 一一一子类重写父类的方法 2.super()的使用实例 一一一子类重写父类的变量 3.super()的使用实例 一一一在子类的构造方法中  4.关于构造方法中super() 第一种情况:编译不通过 第二种情况...

    目录

    1.super()的使用实例 一一一子类重写父类的方法

    2.super()的使用实例 一一一子类重写父类的变量

    3.super()的使用实例 一一一在子类的构造方法中

     4.关于构造方法中super()

    第一种情况:编译不通过

    第二种情况:编译不通过

    第三种情况:成功编译通过


     

    1.super()的使用实例 一一一子类重写父类的方法

    public class A {
    	
    	private String nameA="A";
    	
    	public void getName() {
    		System.out.println("父类"+nameA);
    	}
    	public static void main(String[] args) {
    	}
    	
    }
    
    
    public class B extends A{
    	private String nameB="B";
    	
    	@Override
    	public void getName() {
    		System.out.println("子类"+nameB);
    		super.getName();
    	}
    	
    	public static void main(String[] args) {
    		B b=new B();
    		b.getName();
    	
    	}
    }

    运行结果:

    结果分析:

    在子类B中,我们重写了父类的getName方法,如果在重写的getName方法中我们去调用了父类的相同方法,必须要通过super关键字显示的指明出来。

    如果不明确出来,按照子类优先的原则,相当于还是再调用重写的getName()方法,此时就形成了死循环,执行后会报java.lang.StackOverflowError异常。如下图所示:

    2.super()的使用实例 一一一子类重写父类的变量

    public class A {
    	
    	 String nameA="A";
    
    }
    
    public class B extends A{
    	 String nameA="B";
    	
    	
    	public void getName() {
    		System.out.println("子类"+nameA);
    		System.out.println("父类"+super.nameA);
    	}
    	
    	public static void main(String[] args) {
    		B b=new B();
    		b.getName();
    	
    	}
    }
    

    运行结果:

    此时子类B中有一个和父类一样的字段(也可以说成父类字段被隐藏了),为了获得父类的这个字段我们就必须加上super,如果没有加,直接写成name = name;不会报错,只是会警告,表示此条语句没有任何意义,因为此时都是访问的子类B里面的那么字段。

    我们通过super是不能访问父类private修饰的变量和方法的,因为这个只属于父类的内部成员,一个对象是不能访问它的private成员的。

     

    3.super()的使用实例 一一一在子类的构造方法中

    编译器会自动在子类构造函数的第一句加上 super(); 来调用父类的无参构造器;此时可以省略不写。如果想写上的话必须在子类构造函数的第一句,可以通过super来调用父类其他重载的构造方法,只要相应的把参数传过去就好。

     

    因此,super的作用主要在下面三种情况下:

    1、调用父类被子类重写的方法;

    2、调用父类被子类重定义的字段(被隐藏的成员变量);

    3、调用父类的构造方法;

    其他情况,由于子类自动继承了父类相应属性方法,关键字super可以不显示写出来。

     4.关于构造方法中super()

    第一种情况:编译不通过

     

    分析:

    如果一个类中没有写任何的构造方法,JVM会生成一个默认的无参构造方法。在继承关系中,由于在子类的构造方法中,第一条语句默认为调用父类的无参构造方法(即默认为super(),一般这句话省略了)。所以当在父类中定义了有参构造函数,都是没有定义无参构造函数时,IDE会强制要求我们定义一个相同参数类型的构造器。

    在本例中JVM默认给B加了一个无参构造方法,而在这个方法中默认调用了super(),但是父类中并不存在该构造方法

    第二种情况:编译不通过

    同样编译错误,相同的道理,虽然我们在子类中自己定义了一个构造方法,但是在这个构造方法中还是默认调用了super(),但是父类中并不存在该构造方法

    第三种情况:成功编译通过

    public class A {
    	public A(String s) {
    		
    	}
    
    }
    
    public class B extends A{
    	public B(String s) {
    		super(s);
    	}
    }
    

    分析:

    所以,只要记住,在子类的构造方法中,只要里面没有显示的通过super去调用父类相应的构造方法,默认都是调用super(),即无参构造方法,因此要确保父类有相应的构造方法。

     

     转载:https://blog.csdn.net/shakespeare001/article/details/51388516

     

    展开全文
  • Java中super关键字及super()的使用

    千次阅读 多人点赞 2020-07-06 22:52:15
    super关键字的使用: (1)super是一个关键字; (2)super和this很类似,我们对比着学习。 先复习一下this关键字的使用。 this关键字: this能出现在实例方法和构造方法中; this的语法是“this.”和“this()”; ...
  • Super VLAN

    千次阅读 多人点赞 2021-04-16 19:45:31
    Super VLANSuper VLAN技术背景Super VLANSuper VLAN通信规则Super VLAN使用前后对比配置案例场景基础配置Super VLAN配置验证 Super VLAN 技术背景 传统VLAN部署中,一个VLAN对应一个网段和一个VLANIF三层接口实现...
  • superobject

    2019-01-17 17:46:38
    delphi7解析json时,需在工程文件中导入superobject.pas文件就可以,该版本在delphi7上亲测通过
  • superobject1.26

    2018-05-28 16:55:50
    superobject1.26 SuperObject.pas,superxmlparser.pas
  • Python super().__init__()测试及理解

    万次阅读 多人点赞 2019-02-24 13:20:17
    Python3 super().__init__()含义 测试一、我们尝试下面代码,没有super(A, self).__init__()时调用A的父类Root的属性和方法(方法里不对Root数据进行二次操作) class Root(object): def __init__(self): self.x=...
  • Super PI是一款专用于检测CPU稳定性的软件。Super PI是一款专用于检测CPU稳定性的软件,软件通过计算圆周率让CPU高负荷运作,以达到考验CPU计算能力与稳定性的作用。计算的圆周率位数,计算的位数越多,检测时间越长...
  • superobject 1.25

    2017-05-02 17:04:30
    superobject 1.25 ------------------ SuperObject提供了两个类库文件SuperObject.pas,superxmlparser.pas,其中SuperObject.pas就是用于操作json数据,而superxmlparser.pas用与从XML数据中解析出json数据。
  • delphi superobject

    2018-11-27 13:39:06
    superobject.pas。放置到项目中Uses一下。即可。
  • superobject1.25

    热门讨论 2014-02-18 16:31:26
    superobject1.25 本人修正superobject1.24的一些问题。 修正D7的一个溢出计算错误, 增加XE2支持。 本人亲测 D7 D2010 XE2
  • Super方法

    千次阅读 2018-09-01 01:51:37
    Super方法用来调用和访问父类的方法 super 关键词可以单独出现在子类的构造函数中,调用父类的构造函数为子类属性赋值(注意super关键词必须出现在this关键词之前)。 class Father{ constructor(x, y){ this....
  • SuperSU下载 | SuperSU Download

    千次阅读 2019-06-04 14:45:00
    SuperSU下载 | SuperSU Download SuperSU-v2.46.zip 下载SuperSU-v2.78-20160831113855.apk 下载SuperSU-v2.79-201612051815.zip 下载SuperSU-v2.79-20161205182033.apk 下载SuperSU-v2.79-20161211114519.zip ...
  • SuperSocket通讯.rar

    2019-12-04 08:59:49
    SuperSocket通讯,SuperSocket服务端及SuperSocket客户端源码演示示例。使用工具vs2019
  • SuperFetch

    千次阅读 2017-10-18 11:20:31
    SuperFetch
  • Super用法

    千次阅读 2018-08-08 19:28:56
    *super关键字: 类似与this关键字(当前当前对象);super关键字代表父类对象  *1.可以利用super关键字代表父类对象访问父类的属性和方法。  * super.属性--->访问父类的属性  * super.方法名()--->...
  • SuperSocket相关dll

    2017-12-07 15:54:04
    log4net.dll 1.2.11.0 SuperSocket.Common.dll SuperSocket.SocketBase.dll SuperSocket.SocketEngine.dll SuperWebSocket.dll
  • js super

    千次阅读 2016-01-20 10:38:08
    The super keyword is used to call functions on an object's parent. The super.prop and super[expr] expressions are valid in any method definition in both classes andobject literals. ...
  • Python-Super

    万次阅读 2020-06-19 10:40:03
    文章目录super简单案例super的调用顺序 super简单案例 class A: def __init__(self): print("A") class B(A): def __init__(self): print("B") super().__init__() if __name__ == '__main__': b = B() ...
  • SuperSocket

    千次阅读 2018-07-12 11:30:15
    SuperSocket 是一个轻量级的可扩展的 Socket 开发框架,可用来构建一个服务器端 Socket 程序,而无需了解如何使用 Socket,如何维护Socket连接,Socket是如何工作的。该项目使用纯 C# 开发,易于扩展和集成到已有的...
  • super的详解

    千次阅读 多人点赞 2019-08-09 13:42:53
    为什么需要学习super? 能够帮助子类 初始化 父类继承下来的成员,从而简化代码\color{red}{简化代码}简化代码 super的定义: 与this概念区分 this代表当前对象,创建任何一个对象,都会创建一个this引用和该对象...
  • SuperSocket实例程序

    2018-03-20 22:29:46
    基于SuperSocket V1.6.1开发的示例程序,含服务端和客户端,编译无报错,运行正常。学习基于SuperSocket开发的同学值得一看
  • super关键字详解

    千次阅读 多人点赞 2021-01-26 22:58:59
    super关键字详解 由于子类不能继承父类的构造方法,因此,如果要调用父类的构造方法,可以使用super关键字。 super可以用来访问父类的构造方法,普通方法和属性。 super关键字的功能: 在子类的构造方法中显式的...
  • super用法

    2014-07-29 19:38:31
    super代指父类 其用法如下 super()调用父类默认的构造函数 super(data)后加参数的是用来调用父类中具有相同形式的  构造函数  super.method()调用父类中的方法 super.variable 返回父类的成员变量的值
  • 单纯从参数上来看,两者差距并不大,GTX1660Ti相比GTX1660SUPER在流处理器上多了128个,并且在TDP功耗低了5W,而GTX1660SUPER主要在核心频率略有优势,并且拥有高达14000MHz显存频率,显存带宽提升了至336GB/s。...
  • 易语言模块Super-EC.rar

    2020-03-29 12:26:40
    易语言模块Super-EC.rar 易语言模块Super-EC.rar 易语言模块Super-EC.rar 易语言模块Super-EC.rar 易语言模块Super-EC.rar 易语言模块Super-EC.rar
  • Delphi superobject

    热门讨论 2014-09-03 09:53:19
    用于delphi操作JSON的库函数单元,superobject中自动默认为UNICODE编码,处理中文会出现乱码
  • 由于子类不能继承父类的构造方法,因此,要调用父类的构造方法,必须在子类的构造方法体的第一行使用 super() 方法。该方法会调用父类相应的构造方法来完成子类对象的初始化工作。 在以下情况下需要使用 super ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,893,850
精华内容 757,540
关键字:

super