Java中super的用法并与this的区别(转载)
一.子类中如果需要调用父类中的构造函数,则需要使用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();
System.out.println("Sub");
}
}
运行结果:
Base
Sub
二.用super访问父类中被隐藏的成员变量或方法
有时会遇到子类中的成员变量或方法与父类中的成员变量或方法同名。因为子类中的成员变量或方法名优先级高,所以子类中的同名成员变量或方法就隐藏了父类的成员变量或方法,但是我们如果想要使用父类中的这个成员变量或方法,就需要用到super.
public class Demo2 {
public static void main(String[] args) {
City city=new City();
city.setName();
}
}
class Country {
String name;
void setName() {
name="China";
}
}
class City extends Country {
String name;
void setName() {
name="nanjing";
//调用父类的成员方法
super.setName();
System.out.println(name);
//调用父类的成员变量
System.out.println(super.name);
}
}
运行结果:
nanjing
China
三.用super直接传递参数
public class Demo3 {
public static void main(String[] args) {
Chinese ch=new Chinese();
ch=new Chinese("小明");
ch=new Chinese("小花",22);
}
}
class Person {
//静态方法
public static void show(String s) {
System.out.println(s);
}
public Person() {
show("A Person");
}
public Person(String name) {
show("A person name is: "+name);
}
}
class Chinese extends Person {
public Chinese() {
//调用父类的构造方法
super();
show("A chinese");
}
public Chinese(String name) {
//调用父类具有相同形参的构造方法
super(name);
show("his name is:" +name);
}
public Chinese(String name, int age) {
//调用本类具有相同形参的构造方法
this(name);
show("his age is:"+age);
}
}
运行结果:
A Person
A chinese
A person name is: 小明
his name is:小明
A person name is: 小花
his name is:小花
his age is:22
四.super与this的异同

注:本文转载自http://blog.csdn.net/anmei2010/article/details/4093118
Java中super的用法并与this的区别(转载)的更多相关文章
- java中super的用法
在Java中,super关键字有2个用法,一个是访问父类的函数,一个是访问父类的变量,总体来说,就是一个功能,访问父类的成员. 代码如下: class Person { String name ; i ...
- java中super的用法总结
package com.ssm.java; /** * Super * usage1:super. 直接去调用父类的方法和属性. * usage2:放在构造器中的第一位,代表引用父类的构造器. */ ...
- java中this的用法?
2008-07-28 08:10cztx5479 | 分类:JAVA相关 | 浏览4533次 java中this的用法? import java.awt.*; import java.awt.even ...
- 转:十八、java中this的用法
http://blog.csdn.net/liujun13579/article/details/7732443 我知道很多朋友都和我一样:在JAVA程序中似乎经常见到“this”,自己也偶尔用到它, ...
- Java 中 synchronized的用法详解(四种用法)
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码.本文给大家介绍java中 synchronized的用法,对本文感兴趣的朋友一起看看吧 ...
- java成神之——java中string的用法
java中String的用法 String基本用法 String分割 String拼接 String截取 String换行符和format格式化 String反转字符串和去除空白字符 String获取 ...
- java中stringBuilder的用法
java中stringBuilder的用法 String对象是不可改变的.每次使用 System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需 ...
- java中super()和this()、super和this的区别
1.super()和this()区别: super():调用父类无形参的构造方法: super(形参):调用父类中某个带形参的构造方法: this(形参):调用本类中另一种形式的构造方法: 注意:放在 ...
- Python中super的用法【转载】
Python中super的用法[转载] 转载dxk_093812 最后发布于2019-02-17 20:12:18 阅读数 1143 收藏 展开 转载自 Python面向对象中super用法与MRO ...
随机推荐
- js中的scroll和offset 的使用比较
1.offsetTop :当前对象到其上级层顶部的距离.不能对其进行赋值.设置对象到页面顶部的距离请用style.top属性. 2.offsetLeft :当前对象到其上级层左边的距离. ...
- WCF之安全
传输安全. 点对点,对整个消息进行加密,性能损失,当中间者不安全时,消息也就不安全了. WCF中支持传输安全和消息安全模式. 通过配置和绑定来设置.<Security Mode =Transct ...
- ionic2 Navigation实现报错:No component factory found for "MyComponent"
ionic2 写的代码里面,跳转的时候报了一个 No component factory found for "RechargeSucceed" recharge() { let ...
- 简单解析依赖注入(控制反转)在Spring中的应用
IoC——Inversion of Control 控制反转DI——Dependency Injection 依赖注入 大家都知道,依赖注入是Spring中非常重要的一种设计模式.可能很多初学者 ...
- UIActionSheet
#import <UIKit/UIKit.h> @interface ViewController : UIViewController<UIActionSheetDelegate& ...
- 将mysql的查询结果输出到文件
在sql命令中我们可以查询到前数行的表,同时也可以将查询结果输出到txt文档 语句:select * from tablename into outfile 'filename.txt'; 例如:se ...
- WInform启动另一个项目传值
背景:从A项目中登陆后,跳转到B项目的某个页面(B不再登陆). A项目启动进程: public Form1() { InitializeComponent(); } #region 调用进程 [Dll ...
- 【zendstudio】如何利用zendstudio新建 或导入php项目
一.利用ZendStudio创建 PHP Project 1. 打开ZendStudio, 选择:File à New à PHP Project, 如下图所示: 于是弹出如下界面: 在”Projec ...
- 使用mysql关键字做类字段名报的错,花了我一个钟,坑啊
com.modelsystem.po.ProjectPlan@701faaedHibernate: insert into ld.project_plan (addTime, describe, ex ...
- URL锚点HTML定位技术机制
一.锚点是什么 锚点就等同于火影中的“飞雷神之术”,我们先看百科中锚点的解释: 使用命名锚记可以在文档中设置标记,这些标记通常放在文档的特定主题处或顶部.然后可以创建到这些命名锚记的链接,这些链接可快 ...