关于JAVA重载的问题~!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于JAVA重载的问题~!相关的知识,希望对你有一定的参考价值。
下面分别举一个例子来说明方法重载:
public class TestOverLoad
public static void main(String[] args)
Test test = new Test();
test.print(null);
class Test
public void print(String some)
System.out.println("String version print");
public void print(Object some)
System.out.println("Object version print");
该程序输出的结果是String version print。
请问下为什么是这个结果啊?
重载不是根据传入参数来打印结果吗?难道他们2个传入的参数不一样?
请赐教
另外注意:父类和子类的方法不是重载,是覆盖。重载指的是在同一个类中,方法名相同,参数类型和个数不同的方法,这才叫重载。
Father
v
=
new
Children();
这样就测试出来了。这里就涉及了OO中的继承,多态特性了,楼主再找些相关书籍仔细体会一下。 参考技术B 因为String类是Object的子类,所以重载的时候按照子类的算。
给你写了一段实例程序如下:
public class Test
public static void print(SuperClass sc)
System.out.println("super class");
public static void print(Class1 c1)
System.out.println("class1");
public static void print(Class2 c2)
System.out.println("class2");
public static void main(String[] args)
SuperClass sc = new SuperClass();
Class1 c1 = new Class1();
SuperClass c2 = new Class2();
print(sc);
print(c1);
print(c2);
class SuperClass
SuperClass()
class Class1 extends SuperClass
Class1()
super();
class Class2 extends SuperClass
Class2()
super();
输出:
super class
class1
super class
不知明白否?本回答被提问者采纳 参考技术C 因为null可以当做String类型的值
String类型的默认值就是null
因为String是一个引用类型.
不同于Int.Double那些的值类型.
所以重载的时候判断参数就选择了再首位的public void print(String some)
如果你把String换成Int
那么就会执行public void print(Object some)
我认为是这样. 参考技术D 首先纠正一下,这叫方法的重写,不是重载,这是两个完全不同的概念
在就是这里子类重写了父类的方法
访问级别的限制一定不能比被重写的方法窄,可以比被重写方法的宽...
关于Java中的方法重载
public void amethod(int i, String s)
这个方法和
public void Amethod(int i, String s)
这个方法能发生发发重载吗??
我觉得不可以.可书上缺说这样可以发生 重载..
参数项不同:
①参数个数相同,类型不 同
②参数个数不同
尽信书则不如无书。 参考技术A 你的书上估计是错的,java中,不同的方法名就代表了不同的函数,要想发生重载,必须要是相同的方法名才行,重载的条件还有参数的数据类型或者是参数的个数不同,这样才能发生重载。 参考技术B 不能
java大小写敏感
你那属于不同方法名
以上是关于关于JAVA重载的问题~!的主要内容,如果未能解决你的问题,请参考以下文章