关于继承重载的一个困惑我很久的问题

superhemiao 2006-04-16 07:40:06
class A
{
void a1(){....}
void a2(){}
}
class B extends A
{
void b(){}
static void b2(){ new B().a1() }
}

new B().a1() 到底是个怎样的调用过程
在类B中是不是已经有了a1(),a2()到底属于谁
...全文
112 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fankobe 2006-04-17
  • 打赏
  • 举报
回复
却是你在A类的方法前面没有申明访问权限,所以就默认是包访问的(package),但是你的AB类并没有在同一个包里面,所以B类不能访问A类继承的方法,不过A类的方法却是继承来了,只是B类没有权限使用。
old_man 2006-04-16
  • 打赏
  • 举报
回复
只有public才完全的直接的B从A中来调用!!
powerman_lyj 2006-04-16
  • 打赏
  • 举报
回复
继承时,方法调用过程

1。在本类中寻找
2。在本类的父类中寻找
3。在更上一层中寻找
。。
直到找到Oject中还没有找到的化就会抛出异常
fankobe 2006-04-16
  • 打赏
  • 举报
回复
B类继承了A类的所有方法(包括private的方法,只是这个不能使用),所以你的B类确实是有a1和a2两个方法的,new B().a1()调用的是B类继承来的方法,因为你没有重载(其实应该说是复写,重载不是这样的),所以你调用后的结果跟A类的对象调用a1方法的效果是一样。
old_man 2006-04-16
  • 打赏
  • 举报
回复
由于B继承了A,所以A中所有定义的变量在B中都可以直接调用,也就是说B中有同样的功能。也就是说a1(),a2()在属于A的同时可以随时被B调用的!!
yes1983 2006-04-16
  • 打赏
  • 举报
回复
类B继承了类A中的方法a1()和a2(),newB().a1()调用的是类B的a1,由于你没有重载方法a1,所以newB().a1()起的作用和类A中的a1是一样的
interpb 2006-04-16
  • 打赏
  • 举报
回复
子类对象包含父类对象的方法和属性

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧