首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何用Java编译对象?

如何用Java编译对象?
EN

Stack Overflow用户
提问于 2018-09-29 05:04:58
回答 2查看 0关注 0票数 0

我对在Java中强制转换对象意味着什么感到困惑

说你有......

代码语言:javascript
复制
Superclass variable = new Subclass object();
(Superclass variable).method();

这里发生了什么?变量类型是否更改,或者变量中的对象是否更改?很困惑。

EN

回答 2

Stack Overflow用户

发布于 2018-09-29 13:58:47

你引用的示例在java中称为Upcasting,创建一个子类对象,其中一个超类变量指向它。

变量不会改变,它仍然是超类的变量,但它指向子类的对象。

例如,假设有两个类机器和相机; Camera是Machine的子类

代码语言:javascript
复制
class Machine{

    public void start(){

        System.out.println("Machine Started");
    }
}

class Camera extends Machine{
     public void start(){

            System.out.println("Camera Started");
        }
     public void snap(){
         System.out.println("Photo taken");
     }
 }
Machine machine1 = new Camera();
machine1.start();
票数 0
EN

Stack Overflow用户

发布于 2018-09-29 14:15:11

看看这个示例:

代码语言:txt
复制
public class A {
  //statements
}

public class B extends A {
  public void foo() { }
}

A a=new B();

//To execute **foo()** method.

((B)a).foo();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档