java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java中super与this关键字

Java中super与this关键字的用途及区别详解

作者:暮乘白帝过重山

这篇文章主要介绍了Java中super与this关键字的用途及区别的相关资料,super和this是Java中用于引用父类和当前对象的特殊关键字,文中通过代码介绍的非常详细,需要的朋友可以参考下

super关键字

super是Java中的一个引用变量,用于引用直接父类对象。

主要用途:

this关键字

this是Java中的一个引用变量,用于引用当前对象。

主要用途:

super与this的区别

特性superthis
引用对象父类对象当前对象
使用场景主要用于继承关系中可用于任何类中
调用构造器必须位于子类构造器第一行必须位于构造器第一行
访问权限只能访问父类可见的成员可以访问当前类所有成员
链式调用不能链式调用(super.super非法)可以链式调用(this.this非法)
静态上下文不能在静态方法/块中使用不能在静态方法/块中使用

代码示例

class Parent {
    String name = "Parent";
    
    void display() {
        System.out.println("Parent's display");
    }
}

class Child extends Parent {
    String name = "Child";
    
    Child() {
        this("Default"); // 调用本类的另一个构造器
    }
    
    Child(String name) {
        super(); // 调用父类构造器
        this.name = name;
    }
    
    void display() {
        System.out.println("Child's display");
    }
    
    void show() {
        System.out.println(super.name); // 访问父类的name
        System.out.println(this.name);  // 访问本类的name
        super.display();               // 调用父类的display
        this.display();                 // 调用本类的display
    }
}

public class Main {
    public static void main(String[] args) {
        Child child = new Child("Test");
        child.show();
    }
}

输出结果:

Parent
Test
Parent's display
Child's display

总结

到此这篇关于Java中super与this关键字的用途及区别详解的文章就介绍到这了,更多相关Java中super与this关键字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文