Java学习心得之super和this关键字
来源:互联网 发布:梦幻西游mac 编辑:程序博客网 时间:2024/06/05 10:30
一、super关键字
含义:在Java中使用super来引用父类的成分,如果一个类从另外一个类继承,我们new子类实例时,这个子类里面会有一个父类的引用。
测试代码:
public class ChildClass extends Fauther {/** * 子类除了继承父类的value属性,自己还声明了一个value属性 * 此时,子类中有两个value属性 */public int value;/** * 子类中重写了父类的方法 */public void function(){super.function();//调用父类的方法value = 200;//给子类value属性赋值System.out.println("子类value:"+value);System.out.println(value);//打印子类value/* * 子类通过调用父类function方法,已经将父类value值从0赋值为100 */System.out.println(super.value);//打印父类value}public static void main(String[] args) {ChildClass c = new ChildClass();c.function();}}class Fauther{public int value;public void function(){value = 100;System.out.println("父类value:"+value);}}
输出结果:
父类value:100子类value:200200100
总结:上述例子可以看出,我们通过super关键字访问父类的方法和属性。
二、this关键字
含义:Java中使用this来指向自身的引用。
测试代码:
public class Leaf { int i = 0; //通过过this关键来区分自身属性和形参 public Leaf(int i) { this.i = i; } //该方法通过this关键字返回自身对象的引用 Leaf increament() { i++; return this; } void print() { System.out.println("i = " + i); } //执行构造方法初始化i为100,调用increament方法后返回自身对象, //因此我们可以继续调用increament方法 public static void main(String[] args) { Leaf leaf = new Leaf(100); leaf.increament().increament().print(); }}输出结果:
i = 102
阅读全文
0 0
- Java学习心得之super和this关键字
- 关键字之this和super
- java this和super关键字
- [java]关键字this和super
- java -- this和super关键字
- java关键字super和this
- java this和super关键字
- Java关键字 super和this
- java关键字---this 和super
- Java this关键字和super关键字
- java中的super关键字和this关键字
- Java关键字介绍之this与super
- Java关键字介绍之this与super
- Java关键字介绍之this与super
- Java关键字介绍之this与super
- Java关键字介绍之this与super
- Java关键字介绍之this与super
- Java关键字介绍之this与super
- Java四种引用
- hibernate学习笔记1——save、persist;load、get;merge、update比较
- 我为什么放弃了 Python ,选择了 Go?
- 服务器局域网内拷贝数据:远程到本地and本地到远程
- Dagger2的引入
- Java学习心得之super和this关键字
- testsite
- C语言中const关键字
- linux时间同步,ntpd、ntpdate
- three.js 01-02 之首个场景
- centos下maven编译 mvn package 报错:No compiler is provided in this environment. Perhaps you are running
- 上传文件到集群失败
- 300.33通过读取配置文件方式来使用反射完成实例对象调用方法
- android:singleLine="true" 跟maxLines="1"是不同的