Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以重写类对象的新实例吗?_Java_Oop_Inheritance - Fatal编程技术网

Java 我可以重写类对象的新实例吗?

Java 我可以重写类对象的新实例吗?,java,oop,inheritance,Java,Oop,Inheritance,我不确定它的名称,但您可以使用以下方法轻松重写方法: Apple foo = new Apple(){ public void devour(){ //Devour apple } }; 您可以使用getClass获取对象的类 是否可以这样做: Apple a = new Apple(); Class<? extends Apple> B = a.getClass(); Apple c = new B(){ public void polis

我不确定它的名称,但您可以使用以下方法轻松重写方法:

Apple foo = new Apple(){
    public void devour(){
        //Devour apple
    }
};
您可以使用getClass获取对象的类

是否可以这样做:

Apple a = new Apple();
Class<? extends Apple> B = a.getClass();
Apple c = new B(){
    public void polish(){
        //Polish apple
    }
};
Apple a=新苹果();

类在第一个代码片段中,您正在创建一个
Apple
的匿名子类,该子类重写
aground()
方法,然后将
foo
实例化为该匿名子类的一个实例


在第二个示例中,在您的目标中,您不能在对象已经存在之后更改对象引用的类/类型。

在第一个代码段中,您正在创建一个
Apple
的匿名子类,该子类覆盖
吞食()
方法,然后将
foo
实例化为这个匿名子类的实例

在第二个示例中,在您的目标中,您不能在对象已经存在之后更改对象引用的类/类型