加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java中的继承 – 我无法理解的东西

发布时间:2020-12-15 04:15:26 所属栏目:Java 来源:网络整理
导读:我对 Java中的继承有疑问,我无法理解: 我有这两个班: public class C{ public void foo(D d) { System.out.println("cd"); }}public class D extends C{ public void foo(C c) { System.out.println("dc"); } public void foo(D d) { System.out.println("
我对 Java中的继承有疑问,我无法理解:

我有这两个班:

public class C
{
    public void foo(D d)
    {
         System.out.println("cd");  
    }
}

public class D extends C
{
    public void foo(C c)
    {
         System.out.println("dc");  
    }

    public void foo(D d)
    {
         System.out.println("dd");  
    }
}

主要:

public static void main(String[] args)
{
    C cd = new D();
    D dd = (D)cd;   
}

每个cd和dd的类型是什么?为什么?

解决方法

这里涉及两种不同的类型:

>变量的类型;
>变量引用的对象的类型.

变量的类型独立于它当前恰好引用的对象的类型 – 反之亦然,对象的类型不依赖于访问它的变量的类型.因此,当您将对象分配给另一个不同的另一个变量时,其类型不会受到影响.

所以,

>变量cd的类型是C;>它所引用的对象的类型是D.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读