public class A {
public void method()
{
}
}
class B extends A{
public int method()
{
return 1;
}
private void method(int j)
{
}
}为什么子类里面的两个method()方法会出错
我的意思是这个两个方法随便写一个在子类里面都会出错。
不是因为重命名的原因
解决方案 »
- 求javase版的植物大战僵尸联机版源码一份
- 正则捕获分组并替换
- swing中如何判断当前的panel
- 怎么知道我选的是哪个文本框
- 用java连接数据库,调试时问题
- 帮帮看看!错误在哪里??点击图片没有反应呢,应该有个页面出来啦???
- 菜问题,拿分呀!!狂昏!关于Collection
- 大家帮一下这只小鸟吧
- JAVA应用程序界面编程高手请进:)一个做java的软件公司的面食问题。
- 不要再对斑竹:hexiaofeng、sharetop 进行人身攻击了,人无完人!希望大家把这个java论坛搞好,才是正经事!祝大家水平越来越高,新春快乐!
- 救命啊,,,,,求SQL 查询语句
- JAVA NIO中服务器断开socketChannel的状态问题
{
}
与
public int method()
{
return 1;
}
如果你这样定义,是肯定会报错的,因为你如果子类向上转型为父类的话,编译器是无法识别要调用那一个方法
如果要区分,只有通过传递的参数区分,而不是通过返回值区分
public class A
{
public void method(int j) { }
}
class B extends A
{ public int method()
{ return 1; }
private void method(int j)
{ }
}
java中有两个概念很容易搞混Override和Overwrite
1,Override在java中翻译成重写或者覆盖,
而不是熟知的重载!!!
Override就是子类function跟父类function完全一致(非peivate函数),包括函数名,参数和返回值。
经过Override后的function,在子类中不再起作用,通过子类调用该function,只能
是子类的该function;另外,子类中允许出现该函数的同名函数,但参数不能一样!
其实这样的函数才是对父类的这个函数的重载!
2,Overwrite就是在原来的基础上继续写!
这才是重载!!!
Overwrite指的是同一个class中的同名但不同参数的function~