package cn.wzx.www; public class A { private B b = null; public void fun(){ this.b=new B(this); this.b.fun(); } public void print(){ System.out.println("Hellow World!"); } }
package cn.wzx.www; public class B { private A a = null; public B(A a){ this.a=a; } public void fun(){ this.a.print(); } }
package cn.wzx.www; public class DemoThis { public static void main(String[] args) { // TODO 自动生成的方法存根 new A().fun(); } }
package cn.wzx.www; public abstract class A1 { public abstract void fun(); }
package cn.wzx.www; public class B1 extends A1 { @Override public void fun() { // TODO 自动生成的方法存根 System.out.println("Hellow Word!"); } }
package cn.wzx.www; public class DemoAB { public static void main(String[] args) { // TODO 自动生成的方法存根 B1 b=new B1(); b.fun(); } }
package cn.wzx.www; //抽象类不能实例化对象,但可以有构造函数 public abstract class A2 { private String name; public A2(String name) { // TODO 自动生成的构造函数存根 this.name=name; } public String getName() { return name; } public abstract void fun(); }
package cn.wzx.www; public class B2 extends A2 { public B2(String name) { // TODO 自动生成的构造函数存根 super(name); } @Override public void fun() { // TODO 自动生成的方法存根 System.out.println(super.getName()); } }
package cn.wzx.www; public class DemoA2B2 { public static void main(String[] args) { // TODO 自动生成的方法存根 B2 b=new B2("悟空"); b.fun(); } }