根据对象的投射类型访问阴影方法

米普

方法调用总是根据对象的运行时类型确定,但是如何从继承实例调用基类的隐藏方法?

class Base {
    String str = "base";
    String str() { return str; }
}

class Impl extends Base {
    String str = "impl";
    String str() { return str; }
}

class Test {
    public static void main(String[] args) {
        System.out.println(((Base) new Impl()).str);   // print 'base'
        System.out.println(((Base) new Impl()).str()); // print 'impl'
    }
}

例如上面,如何实例调用str()方法,最好不使用反射?BaseImpl

豪尔赫·L·莫拉

使用关键字 super

访问超类成员

如果您的方法覆盖了其超类的方法之一,则可以通过使用关键字来调用被覆盖的方法super您还可以使用 super 来引用隐藏字段(尽管不鼓励隐藏字段)。下面是一个例子。

public class Superclass {

    public void printMethod() {
        System.out.println("Printed in Superclass.");
    }
}

从子类调用printMethod

这是一个子类,称为 Subclass,它覆盖了 printMethod():

public class Subclass extends Superclass {

    // overrides printMethod in Superclass
    public void printMethod() {
        super.printMethod();
        System.out.println("Printed in Subclass");
    }
    public static void main(String[] args) {
        Subclass s = new Subclass();
        s.printMethod();    
    }
}

如果你想阅读更多https://docs.oracle.com/javase/tutorial/java/IandI/super.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JPype的属性访问带有属性名称的阴影方法

来自分类Dev

如何更改Three.js对象投射的阴影的强度?

来自分类Dev

根据对象类型确定要调用的方法

来自分类Dev

对象列表投射的最佳方法是什么

来自分类Dev

SceneKit-照明和投射阴影

来自分类Dev

CGContextSetShadowWithColor将阴影放在投射阴影的文本上方

来自分类Dev

如何根据类型转换对象类型?

来自分类Dev

根据输入类型返回对象

来自分类Dev

循环中的对象不会使用Three.js在整个lopop上投射阴影

来自分类Dev

根据世界空间中射线投射的位置绘制对象的纹理

来自分类Dev

反应三纤维3D对象(.obj)模型不投射任何阴影

来自分类Dev

在URP中投射透明平面的阴影

来自分类Dev

投射为未知类型

来自分类Dev

在体素地形上照亮/投射阴影的有效方法

来自分类Dev

从对象投射到标签

来自分类Dev

相邻桌子,盒子阴影正在投射

来自分类Dev

访问Java类方法的最佳方法是创建对象或使方法成为静态类型?

来自分类Dev

如何向球体内的对象投射阴影

来自分类Dev

将对象投射为未知类型

来自分类Dev

投射通用对象的方法C#

来自分类Dev

访问投射对象的属性,在Android上返回意外结果

来自分类Dev

根据列表中对象的类型更改方法的返回类型

来自分类Dev

投射到对象

来自分类Dev

什么是对象投射?

来自分类Dev

关于投射对象

来自分类Dev

如何防止对象在scenekit中投射阴影?

来自分类Dev

超类类型的对象无法访问子类的方法

来自分类Dev

从方法访问委托对象

来自分类Dev

在 getclass() 方法之后投射一个对象