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

本文详细介绍了Java中的super关键字,解释了如何使用super关键字来访问父类的成员变量和方法。通过具体的代码示例展示了在子类构造函数及成员方法中调用父类成员的具体方式。

3."超"关键字(super keyword) 
马克-to-win,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();
    }
}
更多请见:
https://blog.youkuaiyun.com/qq_44594249/article/details/99303859

 

Java 里,`abstract` 和 `interface` 有不同的用途,不能直接组合成 `abstract interface` 来使用。不过,`abstract class`(抽象类)和 `interface`(接口)可分别使用,下面分别介绍它们的使用及示例。 ### 抽象类(abstract class) 抽象类是包含抽象方法的类,不能被实例化,需有子类继承并实现其抽象方法。抽象类可以有普通属性、静态属性、构造方法和非抽象方法等。 ```java // 定义抽象类 abstract class Shape { // 普通属性 protected String color; // 构造方法 public Shape(String color) { this.color = color; } // 抽象方法 public abstract double area(); // 普通方法 public String getColor() { return color; } } // 子类继承抽象类并实现抽象方法 class Circle extends Shape { private double radius; public Circle(String color, double radius) { super(color); this.radius = radius; } @Override public double area() { return Math.PI * radius * radius; } } public class AbstractClassExample { public static void main(String[] args) { // 不能直接实例化抽象类 // Shape shape = new Shape("red"); // 编译错误 Circle circle = new Circle("red", 5.0); System.out.println("Color: " + circle.getColor()); System.out.println("Area: " + circle.area()); } } ``` ### 接口(interface) 接口是完全抽象的类型,使用 `interface` 关键字定义。在 Java 8 之前,接口只包含方法声明和常量;从 Java 8 开始,接口能有 `default` 方法和 `static` 方法;Java 9 引入了 `private` 方法。 ```java // 定义接口 interface Animal { // 常量 int LEGS = 4; // 抽象方法 void eat(); // 默认方法 default void sleep() { System.out.println("Sleeping..."); } // 静态方法 static void breathe() { System.out.println("Breathing..."); } } // 实现接口 class Dog implements Animal { @Override public void eat() { System.out.println("Dog is eating..."); } } public class InterfaceExample { public static void main(String[] args) { Dog dog = new Dog(); dog.eat(); dog.sleep(); Animal.breathe(); System.out.println("Legs: " + Animal.LEGS); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mark_to_win

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值