- CarieVinne
-
从最后的Class1类开始,创建Child类的对象,对象名为myC,引用对象myC的方法printAll(),由于Child类是Parent派生的子类,在Parent的子类Child是定义了一个和父类同名的方法printMe(),覆盖了父类的printMe()方法,用super.printMe();是为了调用父类的同名方法,在此先输出parent
接着运行,this.printMe();语句,this表示是当前类,就是调用自己定义的printMe()方法,输出child
然后调用printMe();方法,如果调用的时候没有声明是调用父类的方法,则默认为是调用当前类的方法,所以输出child
本人也是菜鸟,不知道这么说你懂不懂。
- 黑桃云
-
你的主程序里调用的是printAll()函数,
printAll()函数里:
super.printMe(); //super是代表父类,引用的是父类对象的printMe函数,打印出parent
this.printMe(); //this代表当前对象,引用当前对象的printMe函数,打印出child
printMe(); //什么都不写就是引用当前对象的printMe函数,打印出child
- 贝贝
-
首先简单介绍下这几个类之间的关系:
1.首是一个父类Parent有一个printMe()方法
2.子类Child 继承自父类Parent重写了它的printMe()方法,还自带了printAl()方法其内:super.printMe(); super关键字指调用了父类的方法printMe(),this.printMe(); 和printMe(); 都是调用子类的printMe()方法,其结果是一次调用父类方法,两次调用子类方法
3.main方法中测试调用其子类的printAll( ); 方法,也就是一次调用父类的方法,两次调用子类的方法,其结果当然就是打印:parent
child
child
- 小菜G
-
class Parent
{
void printMe() // 第4步,进入printMe方法
{
System.out.println("parent"); // 第5步,输出:parent
}
}
class Child extends Parent
{
void printMe()
{
System.out.println("child");//
}
void printAll() // 第2步,进入Child类中的printAll方法
{
super.printMe(); // 第3步,使用super关键字调用父类Parent 中的printMe方法
this.printMe(); // 第6步,使用this关键字调用子类Child的printMe方法,输出child
printMe(); // 第7步 ,调用子类Child的printMe方法,输出child
}
}
public class Class1
{
public static void main(String args[ ])
{
Child myC = new Child( );
myC.printAll( ); // 第1步,程序入口。调用 Child类的父类中的printAll方法
}
}
- 康康map
-
程序首先调用super.printMe(),即父类的printMe()方法而输出parent,然后读取this.printMe(),也就是自身的方法printMe()而输出child,最后调用printMe(),因为类Child继承Parent类,他的 printMe() 方法重载覆盖了父类的printMe()方法,所以最后输出child
- wpBeta
-
class Parent
{
// 5这里是第五步
void printMe()
{
System.out.println("parent");
}
}
class Child extends Parent
{
// 6,7两部都是这个方法
void printMe()
{
System.out.println("child");
}
// 3.接着程序从main方法来到这里
void printAll()
{
// 4父类的printMe()
super.printMe();
// 6本类的printMe();
this.printMe();
// 7本类的printMe()
printMe();
}
}
public class test
{
public static void main(String args[ ])
{
// 1.这里使程序执行的开始
// 常见Child的一个对象
Child myC = new Child( );
// 2.这里调用Child的printAll方法
myC.printAll( );
}
}