58869333 发表于 2022-5-8 20:48:42

java问题


这里为什么调用的是Node的getkey和 getValue

Twilight6 发表于 2022-5-8 20:48:43

58869333 发表于 2022-5-8 21:07
我知道你什么意思,但是我想问的是 他向下转型是一个接口 但是为什么会调用到 实现他子类的方法


这不就是多态性么,对不同的实例执行不同的方法

调用方法时,会先检查父类中是否有该方法,若无此方法,则会抛出编译时错误,反之若有,则就会去调用其子类的同名方法

Twilight6 发表于 2022-5-8 20:55:31


getKey() 和 getValue() 方法分别返回对应的 键 和 值

从代码上看,这个循环主要是为了遍历集合元素内容

所以这样调用可以清晰的打印出这个字典中的键值对

58869333 发表于 2022-5-8 21:07:15

Twilight6 发表于 2022-5-8 20:55
getKey() 和 getValue() 方法分别返回对应的 键 和 值

从代码上看,这个循环主要是为了遍历集合元素内 ...

我知道你什么意思,但是我想问的是 他向下转型是一个接口 但是为什么会调用到 实现他子类的方法

58869333 发表于 2022-5-8 21:08:39

Twilight6 发表于 2022-5-8 20:55
getKey() 和 getValue() 方法分别返回对应的 键 和 值

从代码上看,这个循环主要是为了遍历集合元素内 ...

package Map_;

import java.util.ArrayList;

public class asd {
    public static void main(String[] args) {
      ArrayList arrayList = new ArrayList();
      arrayList.add(new B());
      for (Object obj : arrayList){
            A a = (A)obj;
            a.a();
      }
    }
}
interface A{
    void a();

    void b();
}

class B implements A{

    public void a() {
      System.out.println("这是a");
    }

    @Override
    public void b() {
      System.out.println("这是b");
    }
}
和这个代码差不多
页: [1]
查看完整版本: java问题