关于java中super()和this()】的更多相关文章

1.super()和this()区别: super():调用父类无形参的构造方法: super(形参):调用父类中某个带形参的构造方法: this(形参):调用本类中另一种形式的构造方法: 注意:放在方法的首行: 2.super和this的区别: super.父类的成员变量: super.父类的方法: super:当子类中的成员变量.方法和父类的相同时,实现调用父类的成员变量和方法: this:代表当前的对象: 使用的地方:若函数的形参和成员变量同名时,需要用this.成员变量名 原文出处: s…
通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量.但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自己是否在用面向对象的思想编程,自己的程序是否是面向对象的. 好了,现在开始讨论this&super这两个关键字的意义和用法. 在Java中,this通常指当前对象,super则指父类的.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,…
1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base"); } } public class Checket extends Base { Checket() { super();//调用父类的构造方法,一定要放在方法的首个语句 System.out.println("Checket"); } public static void main(Str…
在java中this表示当前类中的对象,super则表示父类中的对象.比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当然,this的另一个用途是调用当前对象的另一个构造方法,如果你想引用父类的某种东西,则选super. class Person { public static void prt(String s) { System.out.println(s); } //父类构造函数1 Person() { prt("A Person."); } /…
摘要:在Java中我们会时常用到super及this的用法,现在我主要来区分一下super.和this.及superL()及this()之间的区别,来对它们的认识和了解: 1.this的用法在Java中: ①:this.:this加点指此时代表当前对象,能操作当前类里面的所有属性及方法以及父类继承而来能被访问修饰符允许的属性和方法. super.:此时指代当前对象类的父类对象部分,不能操作到本类的属性和方法,能操作到父类的能被父类访问修饰符允许的属性和方法,只有当本类中调用被重写前的效果时使用s…
<span style="font-size:18px;">本质:这两个都是调用构造方法的方法.</span> 在java中,super()是在当前类的构造器(能够是无參的也能够是有參的)中调用父类的构造方法(有參或无參). 并且必须是第一句. 也能够通过supekeyword调用父类被隐藏的变量. 比方父类有一个变量为:string str.而子类中也有str这个变量.这个时候就能够用super.str调用父类的该变量了. this()是在当前类调用本类的重载…
1.子类的构造函数如果要引用super的话,必须把super放在函数的首位,如果想用super继承父类构造的方法,但是没有放在第一行的话,那么在super之前的语句,肯定是为了满足自己想要完成某些行为的语句,但是又用了super继承父类的构造方法.那么以前所做的修改就都回到以前了,就是说又成了父类的构造方法了. 2. 在Java中,有时还会遇到子类中的成员变量或方法与父类中的成员变量或方法同名.因为子类中的成员变量或方法名优先级高,所以子类中的同名成员变量或方法就隐藏了父类的成员变量或方法,但是…
1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位.   class Base {   Base() {   System.out.println("Base");   }   }       public class Checket extends Base {   Checket() {   super();//调用父类的构造方法,一定要放在方法的首个语句   System.out.println("Checket");   }    …
在Java中,super关键字有2个用法,一个是访问父类的函数,一个是访问父类的变量,总体来说,就是一个功能,访问父类的成员. 代码如下: class Person { String name ; int age; String school; public Person(String name,int age) { this.name = name; this.age = age; } public void talk() { System.out.println("name is "…
python 的 super 是一个函数,需要两个参数,第一个参数是类,第二个参数是实例,返回值是一个类对象. 其意义是:站在参数2这个实例的角度看去, 参数1这个类的‘父亲’是谁,把‘父亲’返回. 详情见这里. Java 的 super 是一个引用,即一个指针,它指向的是本类内部的那个父类对象. 可以用 super.xxx 来访问父类的成员变量或成员函数. 另外 Java 的 super 有一个特殊用法,就是 super(args),看起来像个函数似的,其实不是. 这种特殊用法只限于写在构造函…
1.     子类的构造函数假设要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base"); } } public class Checket extends Base { Checket() { super();//调用父类的构造方法.一定要放在方法的首个语句 System.out.println("Checket"); } public static void main…
Java中的super是什么?java中的super关键字是一个引用变量,用于引用父类对象.关键字“super”以继承的概念出现在类中.主要用于以下情况: 1.使用super与变量:当派生类和基类具有相同的数据成员时,会发生此情况.在这种情况下,JVM可能会模糊不清.我们可以使用以下代码片段更清楚地理解它: /* Base class vehicle */ class Vehicle { int maxSpeed = 120; } /* sub class Car extending vehic…
一.this用法 概念:this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的指针. this的用法在java中大致可以分为三种: 1. 普通对象的直接引用:this相当于指向当前对象本身. 2. 形参与成员名字重名时,用this来区分. class Person { private int age = 10; public Person(){ System.out.println("初始化年龄:"+age); } public int GetAge(int age){ t…
1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base"); } } public class Checket extends Base { Checket() { super();//调用父类的构造方法,一定要放在方法的首个语句 System.out.println("Checket"); } public static void main(Str…
package com.ssm.java; /** * Super * usage1:super. 直接去调用父类的方法和属性. * usage2:放在构造器中的第一位,代表引用父类的构造器. */ class SuperSub { String name; void value() { name = "China"; } SuperSub(){ System.out.println("父类,无参构造方法"); } SuperSub(String name){ Sy…
一.子类中如果需要调用父类中的构造函数,则需要使用super(),且必须在构造函数中的第一行 public class Demo1 { public static void main(String[] args) { Sub sub=new Sub(); } } class Base { public Base() { System.out.println("Base"); } } class Sub extends Base { public Sub() { //调用父类的构造方法,…
super代表的是父类.超类,用在继承中的子类中:this代表对象本身,用在本类中.     super访问的是被子类隐藏的父类的属性或被覆盖的方法,而this访问的是同一类中的成员.     super调用的是父类中的某一个构造函数,而this调用的是本类中其他的构造函数.     super和this都需要位于构造器执行体的第一行,否则编译不通过.但是他们两个不能同时存在,因为this要调用其他的构造函数,而其他的构造函数也有super语句,这就形成了冲突,编译不过.     用this可以…
1.super关键字可以在子类的构造方法中显示地调用父类的构造方法,super()必须为子类构造函数中的第一行. 2.super可以用来访问父类的成员方法或变量,当子类成员变量或方法与父类有相同的名字时也会覆盖父类的成员变量或方法,这个时候要想访问父类的成员变量或方法只能通过super关键字来访问,子类方法中的super.方法名()不需要位于第一行. package test; class FatherClass { public int value; public void f() { val…
public class Apple extends Fruit { } class Fruit{ public Fruit(String name){ System.out.println("Fruit's constructor is invoked"); } } 这一段代码好像看上去没啥问题吧,编译之后给的错是 由于Apple中没有显式的定义构造方法,所以,Apple的默认构造方法被调用了,因为Apple是Fruit的子类,Apple隐式构造函数第一句将执行super(),于是乎…
1.final类不能有子类,也就谈不上继承的说法,如果用final修饰成员变量或者局部变量,那成了常量需要制定常量的值. 2.对象的上转型对象,上转型对象不能操作子类新增的成员变量,不能调用子类新增的方法,上转型对象可以访问子类继承或者隐藏的成员变量,也可以调用子类继承的方法或者子类重写的实例方法.但是可以强制将对象的上转型对象再强制转换到一个子类对象,这时该子类对象又恢复了子类对象属性. 3.继承和多态,多态性就是指父类的某个方法被子类重写,可以各自产生自己的行为, 4.abstract抽象类…
要说super就先要说this."this",作为一个特殊的关键字,它的规则如下: 1.可以表示构造函数传递.this(a,b)表示调用另外一个构造函数.这里面的this就是一个特殊语法,不是变量,没有什么类型. 2.可以在一个类的非static成员内部使用,表示当前这个对象.此时,this就是一个final的普通变量,它有静态类型,就是这个类C本身:它有动态类型,就是当前这个对象的类型.你可以对它调用成员函数,把它传递给别的函数,等等等等.只要一个C类型的final变量可以出现的地方…
super()的作用 super能够用来訪问超类的构造方法和被子类所隐藏的方法.假设子类中有方法与超类中的方法名称和參数同样,则超类中的方法就被隐藏起来,也就是说在子类中重载了父类中的方法. 引用父类中所隐藏的语法格式例如以下: super(參数列表)或super.方法名(參数列表) 以下通过代码展示一下super的使用方法: package cn.demo; public class Demo1 { public static void main(String[] args) { SubCla…
[学习笔记] 3."超"关键字(super keyword) Super是一个参考(或说指针)指向他紧邻的父类(见下面的例子).用super可以指向被隐藏的父类的同名成员. 3.1 super指向父类的成员 注意: 下例中:子类和父类都有i,我们一共有两个i,用super可以指向前一个父类的i. 例1.3.1--- class AMark_to_win {    int i;} class B extends AMark_to_win {    int i; public B(int…
1:super 可以在子类调用父类中的成员变量(包括static修饰的变量)和方法(包括static修饰的方法) 2:super 可以调用父类的构造方法 super(参数列表),在没有定义时,并且没有调用自己类中的构造方法时,会自动调用默认的无参构造方法 3:super不能在static修饰的代码块和方法中使用,和this相同的道理.…
1.子类的构造函数如果要引用super的话,必须把super放在函数的首行. 例如: class Base  { Base()  {  System.out.println("Base");  }  }  public class Checket extends Base {  Checket() { //调用父类的构造方法,一定要放在方法的首个语句   super(); System.out.println("Checket");  }  public stati…
class Sum { int n; float f() { float sum=0; for(int i=1;i<=n;i++) sum=sum+i; System.out.println("()="+n); return sum; } } class Average extends Sum { int n; float f() { float c; super.n=n; c=super.f(); System.out.println("f()="+c);…
3.2 当有两次继承时,演示super指向他紧邻的父类 我们把上面的例子扩展成两次继承, 就看出:马克-to-win,Super是一个参考(或说指针)指向他紧邻的父类,而不是最底层的基类. 例1.3.2--- class ZMark_to_win {    int i;    void show() { System.out.println("i in ZMark_to_win: " + i);    }}class A extends ZMark_to_win {      int…
Java中的两个关键字——super.this 神话丿小王子的博客主页 一.super super 是java中方的一个关键字,用它可以引用父类中的成员: super可用于访问父类中定义的属性 super可用于调用父类中定义的成员方法 super可用于在子类构造器中调用父类的构造器 使用super关键字注意事项: 1.当子类和父类都有同名的属性时,在子类中如果要使用父类的属性 super . 属性 2. super只能应用在成员方法和构造方法中,不能用在静态方法中(和this是一样的) 3.如果…
来源于:http://www.cnblogs.com/hasse/p/5023392.html 这几天看到类在继承时会用到this和super,这里就做了一点总结,与各位共同交流,有错误请各位指正~ this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. this的用法在java中大体可以分为3种: 1.普通的直接引用 这种就不用讲了,this相当于是指向当前对象本身. 2.形参与成员名字重名,用this来区分: 1 2 3 4 5 6 7 8 9 10 11 1…
一.final关键字 final可以修饰变量.方法及类: 1.当定义一个final变量时,jvm会将其分配到常量池中,其所修饰的对象只能赋值一次,对基本类型来说是其值不可变,引用类型(包括作为函数形参或类变量):引用不可以被修改该.当作为类变量时, 其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中,这两个地方只能选其一.  2.当修饰一个方法时,该方法在子类中将不能被重写.    通常,如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为f…