关于继承里面的方法问题 父类的method2当然调用父类method1. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 多态要求重写的方法权限一定不能是private的。你之后改的两种情况都附合多态了。 package asmTest;class Parent{ public void method1() { System.out.println("Parent's method1()"); } public void method2() { System.out.println("Parent's method2()"); method1(); //我把methods1改成public权限,然后这里改成this.methods1 } }public class Child extends Parent{ public void method1() { System.out.println("Child's method1()"); } public static void main(String args[]) { Child p = new Child(); p.method2(); } } public static void main(String args[]) { Parent p = new Child(); p.method2(); }刚写错了 [Quote=引用楼主 t2xingzhe 的回复:]下面是这道题Java codeclass Parent{privatevoid method1(){ System.out.println("Parent's method1()"); }publicvoid method2(){ System.out.println("Parent's method2()"); method1();//等于子类使用super关键字 } }class Childextends Parent{publicvoid method1(){ System.out.println("Child's method1()"); }publicstaticvoid main(String args[]){ Parent p=new Child(); p.method2(); }} 那为什么我在父类的methods2方法里面指定this.methods1还是指向了子类的methods1呢 你改成this.methods1还是不改,是完全没有区别的。因为本来在成员函数中通过名字访问一个成员,就是隐含的this.成员名的形式。至于为什么会调用的是子类的方法,那正是Java多态性的表现。如果一个基类的名字指向了一个派生类的对象,那么当它调用方法(成员函数)时,总是调用派生类的方法(如果派生类改写了基类的同名方法)。 既然已经符合多态了,有this和没有this有区别吗?对多态没产生任何影响。 因为是在parent中调用的method1,所有会调用父类本身的method1方法,如果是在子类中调用method1,则调用子类的响应方法 使用URL来向服务器写入数据 javabean加个main函数 GeneralPath的append Arc2D 问题 请问有人做过用JAVA发送ICMP的吗? 怎样实现组件在容器中的移动?急~~~~~~~~~~ 谁能告诉我!(不好意思,分用完了) 文件访问的问题 怎么从键盘读取数据???有没有有什么类啊?? 救急 Jbuilder的安装问题,认为自己是高手的请进来,一定给分!! java可以不可以和javascript一起学啊?会不会混淆啊? 请问java中的哪个map实现能够按照放入集合的顺序存储?
你之后改的两种情况都附合多态了。
{
public void method1()
{
System.out.println("Parent's method1()");
}
public void method2()
{
System.out.println("Parent's method2()");
method1(); //我把methods1改成public权限,然后这里改成this.methods1
}
}public class Child extends Parent
{
public void method1()
{
System.out.println("Child's method1()");
}
public static void main(String args[])
{
Child p = new Child();
p.method2();
}
}
{
Parent p = new Child();
p.method2();
}
刚写错了
下面是这道题
Java codeclass Parent{privatevoid method1(){ System.out.println("Parent's method1()"); }publicvoid method2(){ System.out.println("Parent's method2()"); method1();//等于子类使用super关键字
} }class Childextends Parent{publicvoid method1(){ System.out.println("Child's method1()"); }publicstaticvoid main(String args[]){ Parent p=new Child(); p.method2(); }}
那为什么我在父类的methods2方法里面指定this.methods1还是指向了子类的methods1呢
你改成this.methods1还是不改,是完全没有区别的。因为本来在成员函数中通过名字访问一个成员,就是隐含的this.成员名的形式。至于为什么会调用的是子类的方法,那正是Java多态性的表现。如果一个基类的名字指向了一个派生类的对象,那么当它调用方法(成员函数)时,总是调用派生类的方法(如果派生类改写了基类的同名方法)。
对多态没产生任何影响。