有三个类,A,B,C,B继承A,C继承B.
A有个point()方法,是"打印A",
B覆盖了point()方法,是“打印B”,
C覆盖了point()方法,是“打印C”
A有个run()方法,里面执行了 this.point(),
B的run()方法里面 {super.point();this.point()};
C的run()方法里面{super.point();this.point()}
执行C的run()方法,我希望"打印A""打印B""打印C",但实际是"打印C","打印C","打印C",我应该如何修改我的代码才能达到我需要的效果?
A有个point()方法,是"打印A",
B覆盖了point()方法,是“打印B”,
C覆盖了point()方法,是“打印C”
A有个run()方法,里面执行了 this.point(),
B的run()方法里面 {super.point();this.point()};
C的run()方法里面{super.point();this.point()}
执行C的run()方法,我希望"打印A""打印B""打印C",但实际是"打印C","打印C","打印C",我应该如何修改我的代码才能达到我需要的效果?
class A{
public void point(){
System.out.println("point A");
}
public void run(){
point();
}
}class B extends A{
public void point(){
super.point();
System.out.println("point B");
}
}class C extends B{
public void point(){
super.point();
System.out.println("point C");
}
}
这样就可以做到了。
this.point() ;调用类C的point,打印C不会有三个啊。
没看到你的代码。
public static void main(String[] args) {
new c1().run();
}}class a1{
void point(){
System.out.println("a1");
}
void run(){
this.point();
}
}class b1 extends a1 {
void point(){
System.out.println("b1");
}
void run(){
this.point();
super.point();
}
}class c1 extends b1{
void point(){
System.out.println("c1");
}
void run(){
this.point();
super.run();
}
}
跟LS差不多额
class A{
public void point(){
System.out.println("打印A"); }
public void run(){
this.point();
}
}
class B extends A{
public void point(){
System.out.println("打印B"); }
public void run(){
super.point();
this.point();
}
}
class C extends B{
public void point(){
System.out.println("打印C"); }
public void run(){
super.point();
this.point();
}
}
public class Test1{
public static void main(String[] args){
C c = new C();
c.run();
}
}
A(){ System.out.println("打印A"); }
public void point(){
System.out.println("打印A"); }
public void run(){
this.point();
}
}
class B extends A{
B(){System.out.println("打印B"); }
public void point(){
System.out.println("打印B"); }
/* public void run(){
super.point();
this.point();
}*/
}
class C extends B{
C(){System.out.println("打印c"); }
public void point(){
System.out.println("依次打印A,B,C"); }
/* public void run(){
super.point();
this.point();
}*/
}
public class Test1{
public static void main(String[] args){
C c = new C();
c.run();
}
}
class A {
void point() {
System.out.println("打印A");
}
void run() {
this.point();
}}class B extends A {
void point() {
System.out.println("打印B");
}
void run() {
super.point();
}
}public class C extends B {
void point() {
System.out.println("打印C");
}
void run() {
super.run();
super.point();
this.point();
}
public static void main(String[] args) {
new C().run();
}
}
你只会打出b,c
你学习下一楼的做法
我就不说了