java中的super限定
super的用法:
(1)如果需要在子类中调用父类中被覆盖的实例方法,可以用super限定来调用父类中被覆盖的方法。当然,也可以调用从父类继承的实例变量。
public void callOverridedMethod()
{super.fly();//fly()是父类中被覆盖的方法
}
注:super限定用于限定该对象调用它从父类继承的实例变量或者方法,但是super不能出现在static修饰的方法中,因为,static修饰的方法是属于类的,该方法的调用者可能是一个类,而不是一个对象,因此super限定也就失去了意义。?不明白什么意思,从书上看到的,求高手指教!谢谢!
(2)如果在构造器中使用super,则super用于限定该构造器初始化的是该对象从父类继承得到的实例变量,而不是该类自己定义的实例变量。
public class BaseClass
{public int a=10;
}public class SupClass extends BaseClass
{ //隐藏了父类中的实例变量apublic int a=1;public SupClass(){ //在构造器中使用super,可以访问父类中被隐藏的实例变量super.a=100;//这里初始化的是BassClass中的实例变量的值}
}
(3)在一个构造器中调用另一个重载的构造器使用this来完成。
public class Person
{ private String name; private int age;public Person(String name){this.name=name;}public Person(String name,int age){this(name);//调用重载的构造器 , public Person(String name) this.age=age; }
}
在子类构造器中调用父类的构造器,使用super来完成。
class Person
{ private String name; private int age;public Person(String name,int age){
this.name=name;
this.age=age; }
}
public class ChinesePerpon{ private String skin; public ChinesePerson(String name,int age,String skin) { super(name,age); this.skin-skin; }}
注:代码是手写的,出错很多,谅解!
super和this很像。super调用的是父类的构造器(在子类构造器的第一行),而this调用的是同一个类中重载的构造器(在该类构造器的第一行,由于位置的约束,导致this和super不能同时出现)。
构造器的调用总是从最高父类开始的,最后才是该类的构造器。上面的代码中先是调用Person的构造器,在调用ChinesePerson的构造器。
java中的super限定相关推荐
- java super父类的父类_合理使用父类的财富——Java中的super
Java中的继承让类之间有了父子关系.子类可以继承父类开放给自己的变量.方法等等. 在子类可以直接使用父类的这些变量或者方法等等. 就像下面图1的代码这样. 图1 这段代码中在子类对象可以直接使用父类 ...
- [Java]中[this][super]用法总结
this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. this的用法在java中大体可以分为3种: 1.普通的直接引用 这种就不用讲了,this相当于是指向当前对象本 ...
- Java中<? super T>和List<? extends T>的区别
Java中<? super T>和List<? extends T>的区别 <? extends T> 下面通配符声明List<? extends Numbe ...
- java中this,super,extends,implements相关继承概念讲解
在java中有关==继承==这个词有许多关键字:super,this,extends,implements 对于初学者来说着实比较晕,网上说的也是云里雾里.现在个人算是有些眉目了,来一次总结 ...
- java中的super和this_在Java中super和this的区别
摘要:在Java中我们会时常用到super及this的用法,现在我主要来区分一下super.和this.及superL()及this()之间的区别,来对它们的认识和了解: 1.this的用法在Java ...
- java中的super关键字
原文 一.定义 它是一个指代变量,用于在子类中指代父类对象. 二.应用 2.1 应用范围 只能用于子类的构造函数和实例方法中,不能用于子类的类(静态)方法中.原因是super指代的是一个父类的对象,它 ...
- java 中的 super
super super是啥? 我第一次看见这个词首先想到的是superman~~ 超人. superstar. 超级巨星. 翻译过来就是"超". 所谓超人. 就是比人牛B那么一点点 ...
- java中的全限定类名和非限定类名是什么意思?
全限定类名是指带包名的类名:(如java.lang.String) 非限定类名是不带包名的类名.(如String)
- java中的super()是什么
要说super就先要说this. "this",作为一个特殊的关键字,它的规则如下: 1.可以表示构造函数传递.this(a,b)表示调用另外一个构造函数.这里面的this就是一个 ...
最新文章
- 让delphi程序不受WINDOWS日期格式的影响
- kettle 使用java版本_Kettle最新版本8.X详解
- 3DSlicer18:Layouts
- Android控件捕获点击事件的范围
- res.status === 200含义
- JAVA发送邮件工具包_java mail 发送邮件工具包
- 力扣——字符串转换整数(atoi)
- C++走向远洋——60(十四周阅读程序、STL中的简单容器和迭代器)
- (译)SDL.NET Surfaces 相关介绍
- GridView 设置背景透明以及Item的点击动画
- C#基础知识四之override和new的区别
- 串口转WIFI的工作方式理解
- 验证码图片生成和验证
- 叠氮试剂79598-53-1,6-Azidohexanoic Acid,6-叠氮基己酸,末端羧酸可与伯胺基反应
- centos 6.3_x64编译7.4 LFS
- Matlab中meshgrid的用法
- SYN 洪水攻击如何工作?
- OAI搭建——硬件准备
- 有限状态机 FSM——Finite State Machine
- aix oracle扩容裸lv,aix下扩展lv注意事项