java中Super到底是什么意思?必须举例说明!

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 x, int y) {
        super.i = x;//AMark_to_win 的 i被赋值
        i = y;//B的i被赋值
    }

    public void show() {
        System.out.println("i in superclass: " + super.i);
        System.out.println("i in subclass: " + i);
    }
}

public class Test {
    public static void main(String[] args) {
        B b = new B(2, 3);
        b.show();
    }
}

更多请见:http://www.mark-to-win.com/tutorial/java_3_Super.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Javasuper和this都是关键字,分别表示父类和当前类的引用。它们的作用如下: 1. super关键字 super关键字用于访问父类的属性和方法,可以在子类通过super关键字来调用父类的构造方法、普通方法和属性。在以下三种情况下,需要使用super关键字: - 子类需要调用父类的构造方法; - 子类需要访问父类的被隐藏的属性或方法; - 子类需要访问父类的方法,但又在子类重写了该方法。 例如: ``` class Animal { protected String name; public Animal(String name) { this.name = name; } public void sleep() { System.out.println(name + " is sleeping."); } } class Cat extends Animal { public Cat(String name) { super(name); } public void sleep() { super.sleep(); System.out.println(name + " is also purring."); } } Cat cat = new Cat("Tom"); cat.sleep(); ``` 在上述代码,Cat类继承了Animal类,并重写了它的sleep方法。在Cat类,通过super.sleep()调用了Animal类的sleep方法,从而实现了在Cat类添加新的行为同时保留父类的行为。 2. this关键字 this关键字用于指代当前对象,可以在类访问本类的属性和方法。在以下两种情况下,需要使用this关键字: - 当前类的属性和方法与局部变量名字相同时,可以用this关键字来区分; - 在构造方法调用其他构造方法时,可以使用this关键字来调用本类的其他构造方法。 例如: ``` class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public Person(String name) { this(name, 18); } public void sayHello() { System.out.println("Hello, my name is " + this.name + ", I'm " + this.age + " years old."); } } Person p1 = new Person("Bob", 20); Person p2 = new Person("Alice"); p1.sayHello(); p2.sayHello(); ``` 在上述代码,Person类有两个构造方法,其一个调用了另一个构造方法。在sayHello方法,使用了this关键字来访问本类的属性name和age,从而输出了一个人的基本信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值