JAVA中、父类和子类的一个问题
3个回答
展开全部
这是java面向对象的特点。
父类
a
=
new
父类构造方法():创造的是父类本身,没什么特别的地方。
父类
a
=
new
子类构造方法():创造的对象是子类,但是给它的类型是父类标志。始终你要明白一点这个对象是子类,不管它前面的类型是什么。方法的调用也是子类的。
父类
a
=
new
父类构造方法():创造的是父类本身,没什么特别的地方。
父类
a
=
new
子类构造方法():创造的对象是子类,但是给它的类型是父类标志。始终你要明白一点这个对象是子类,不管它前面的类型是什么。方法的调用也是子类的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题分几种情况,现在就按情况来分析一下:
1、在子类中调用父类中被子类覆盖的方法:
这个情况就是您说的用super来显示的调用。因为在子类中还有一个和父类同样的方法,如果你只写方法名子,编译器不可能知道你想要掉的是哪个方法,他自作聪明的回去调用子类当中的那个。所以这种情况下,你要用super来显示的说明你要调用的是父类中的方法!
2、在其他类中的调用父类方法:
这种情况就在简单不过了。你创造(New出来的!)的是哪类对象(父类对象或是子类对象)他就会去调用父类或是子类中的相应的方法,这个和多态不冲突!
3、静态方法:
静态方法的调用是和类绑定的,类的静态方法又叫类方法,也就是这个方法是属于这个类的,而不是属于这个类创建出来的某个对象的。所以静态方法的调用要用“类名.静态方法名”来调用!
对了,静态方法的调用是需要在另外一个静态方法中的哦,否则编译会错误的!
1、在子类中调用父类中被子类覆盖的方法:
这个情况就是您说的用super来显示的调用。因为在子类中还有一个和父类同样的方法,如果你只写方法名子,编译器不可能知道你想要掉的是哪个方法,他自作聪明的回去调用子类当中的那个。所以这种情况下,你要用super来显示的说明你要调用的是父类中的方法!
2、在其他类中的调用父类方法:
这种情况就在简单不过了。你创造(New出来的!)的是哪类对象(父类对象或是子类对象)他就会去调用父类或是子类中的相应的方法,这个和多态不冲突!
3、静态方法:
静态方法的调用是和类绑定的,类的静态方法又叫类方法,也就是这个方法是属于这个类的,而不是属于这个类创建出来的某个对象的。所以静态方法的调用要用“类名.静态方法名”来调用!
对了,静态方法的调用是需要在另外一个静态方法中的哦,否则编译会错误的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果子类没有重写父类的方法,调用父类的方法的时候,实际上是去父类的内存中实现,可以调用父类方法。
如果子类重写了父类的方法,那么,你虽然上溯造型到了父类,由于内存还是子类,该方法的实现还是在子类,所以用实例化的对象是调用不到父类的,这种情况下,只能用super关键字。
如果子类重写了父类的方法,那么,你虽然上溯造型到了父类,由于内存还是子类,该方法的实现还是在子类,所以用实例化的对象是调用不到父类的,这种情况下,只能用super关键字。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询