java方法参数类型错误的是什么,Java中为什么重载同一方法内的几个参数类型必须不一样
大家好,如果您还对java方法参数类型错误的是什么不太了解,没有关系,今天就由本站为大家分享java方法参数类型错误的是什么的知识,包括Java中为什么重载同一方法内的几个参数类型必须不一样的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
java,方法名相同,参数列表相同,返回值不同,会出现什么状况
会报错,这不是重写,重写是在子类中方法名与父类相同,参数列表相同,返回值相同同
也不是重载,重载是方法名相同,参数列表不同,参数个数不同返回值相同(全满足或满足一个就可以,不管在有没有继承有一样的)
单单返回值不同无法判断是不是调用了不同的方法
还有一个要注意的是“java,方法名相同,参数列表相同,返回值不同”这句话也不是绝对的错误
看例子:
class Person{
public Person eat(){
return new Person
}
}
class Student{
public Student eat(){
/*在这里重载了父类的eat()方法但是返回类型却不一样,这叫协变函数*/
return new Student();
}
]
Java中为什么重载同一方法内的几个参数类型必须不一样
你应该把话说完整,原文是:
在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int, float),但是不能为fun(int, int));
你注意,它说的同一方法内的几个参数类型必须不一样,是在不同参数顺序这一小节,括号里边的。所以参数类型不一样,指的是对应于不同参数顺序前提下,几个参数类型必须不一样。
java的类型参数是什么意思
应该是泛型中提到的一个概念,<T>表示传入任意参数,在给一个泛型类初始化的时候我们要给它传入具体的值,一般是一个类型,如String,Integer或者是一个java bean类型的数据,这时候,String是作为一个参数传过去的,但它表示的是一个字符串类型,也就是传入了String类型的参数。此时String就是一个参数,一个类型参数。如List<string> testList= new List<string>();一个泛型数组,我们要规定该list中只能传入字符串怎么办,这时就给他传入一个String类型参数,只要传入其他类型就会在编译期报错,这也是泛型的一个优点。
关于JAVA的方法参数是类对象的问题
public
void
f(a
a){}
//假设a是一个类
可以传入new
a;这就是把类的对象给传入进去了,我来简单的剖析一下。
a
a=new
a();
a是类型,a是对象变量,new
a();构建对象,a就可以访问a的成员了。
如果a有子类,假设是b,也可以这样传入
a
a=new
b();这个是父类引用子类的内存地址,你可以这样认为byte
b=10;int
a=b;int比byte大,可以接受byte并且自己转换过来。但是类型是a就只能看到a类下面的成员。
还有一种强制转换,传递对象过去,有限制的!比如方法要求子类对象b,调用时候,传递子类没问题,如果是父类引用子类呢?那么就把父类强转为子类传递,如果是new父类转换子类是错误的,因为内存地址不一样,怎么收?父类引用子类,在强制转换为子类,有点绕,知道多态就明白了。
文章到此结束,如果本次分享的java方法参数类型错误的是什么和Java中为什么重载同一方法内的几个参数类型必须不一样的问题解决了您的问题,那么我们由衷的感到高兴!