JAVA的XX.put中的put方法,是在哪个父类或祖父类中,详述父类链。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA的XX.put中的put方法,是在哪个父类或祖父类中,详述父类链。相关的知识,希望对你有一定的参考价值。

hst.put中的put方法,是在哪个父类或祖父类中,详述父类链。 详细的程序是这样的 package chapter5; import java.util.*; public class MyLittleDictionary public static void main(String[] args) HashMap <String,String> hst = new HashMap (); // 空的Hash对象 // 创建简明英汉小字典,目前该词典仅包含5个“键/值”对 hst.put("name", "姓名,名字"); // 设置“键/值”对 hst.put("gender", "性别,性"); hst.put("age", "年龄"); hst.put("score", "成绩"); hst.put("see", "看见,明白"); String searchWord; System.out.print("输入一个单词,我帮你翻译: "); searchWord = SimpleInput.readString( );//从键盘读取英文单词 if (hst.containsKey(searchWord )) // 测试词典中是否包含该单词 // 如果包含该单词,则输出其对应的中文 System.out.println(searchWord +" -> "+ hst.get(searchWord)); else System.out.println( "目前小词典中无此词: "+searchWord); System.out.println( "简明英汉小词典内容如下:"); Iterator it=hst.entrySet().iterator(); //迭代程序 while(it.hasNext()) // 输出该散列映射中的所有键/值对 System.out.println(it.next());

参考技术A put
public
V
put(K key,

V value)
在此映射中关联指定值与指定键。如果该映射以前包含了一个该键的映射关系,则旧值被替换。

指定者:接口
Map<K,V>
中的
put覆盖:类
AbstractMap<K,V>
中的
put参数:key
-
指定值将要关联的键value
-
指定键将要关联的值返回:与
key
关联的旧值;如果
key
没有任何映射关系,则返回
null。(返回
null
还可能表示该映射之前将
null

key
关联。)

Java中的继承关系,子类不需要写super关键字。也能调用到父类的方法么?

在继承结构里面,为了保护封闭原则,通常子类以继承之后,子类可以直接调用父类非私有方法,也就是除了private修饰的方法。这一块,你最好了解一下这几个修饰符的作用域解释。
从多太的角度来看,子类是可以继承父类的方法,如果一个子类继承了父类的方法,那么不用super关键字就是调用本类的方法,如果想调用父类的话就要加super.
比如:
public abstract class TestA()
public void a()
System.out.println("this is a method.");

protected void b()
System.out.println("this is b method.");

private void c()
System.out.println("this is c method.");



public class TestC extends TestA()
//该方法为子类方法,非父类方法。
public void aa()
super.a(); //Yes
a():// Yes 等同 super.a();

super.b(); //Yes
b(); //Yes 等同 super.b();

super.c(); // no 访问不到。
c(); // NO 访问不到。


//覆盖父类方法
protected void b()
System.out.println("this is TestC b method.");


public void d()
b(); //调用本类的方法
super.b(); //调用父类的方法

参考技术A 可以的,super是调用父类被子类覆盖的方法,只要把子类对象的引用赋值给父类的对象就可以调用父类的方法追问

什么是覆盖的方法,是不是在父类里面有的方法,但是子类中没有的方法?

追答

不是,就是子类重写了父类的方法,子类中跟父类同名的方法,但是不同参数,这样子类就覆盖了父类的方法,可以用super关键字来调用。

追问

那这里调用的不是父类的方法么,如果不写不就是调用子类的方法。

参考技术B 1不睡觉的鱼.误人子弟。子类对象指向父类,根据java多态的因素,它会调用子类的方法。因为jvm在运行时会判断对象的实际类型。

什么是覆盖的方法,是不是在父类里面有的方法,但是子类中没有的方法?

你说这话就错误。其实父类有的方法,子类全都有。这才叫继承。追问

那你解释下,为什么不用super关键字也能调用到父类的方法?

追答

w2007107729|三级 看他的

参考技术C 除了构造方法和重写的方法(就是@override),需要显示调用super关键字外,调用其他普通方法是不需要写super的。

当然只能调用protected和public的
参考技术D 应该可以,因为子类在继承父类的时候就相应的继承了父类的方法,只是说对于方法,需要重写的时候就要用super啦

以上是关于JAVA的XX.put中的put方法,是在哪个父类或祖父类中,详述父类链。的主要内容,如果未能解决你的问题,请参考以下文章

Java中实现多态的机制

如何在java中子类中父类的对象如何调用父类的方法?

java基础 静态 static 问在多态中,子类静态方法覆盖父类静态方法时,父类引用调用的是哪个方法?

Java_多态

Java中的继承关系,子类不需要写super关键字。也能调用到父类的方法么?

java中子类能不能继承父类构造方法