方法一:
B类里声明一个静态变量bb,在B构造时赋值为this,A类对象方法调用时,使用B.bb就可以了。
Class B extends A{public static B bb;
public B(){
super();
bb=this;
}
...
}Class A{
public void do(...){
//get B.bb
}
}
方法二:
A类的DO方法中,把B对象作为参数传入。
public void do(Object obj,B bb){
...
}
调用时,把B对象作为参数传入即可。
方法三:...自己想其他方法吧。:)
B类里声明一个静态变量bb,在B构造时赋值为this,A类对象方法调用时,使用B.bb就可以了。
Class B extends A{public static B bb;
public B(){
super();
bb=this;
}
...
}Class A{
public void do(...){
//get B.bb
}
}
方法二:
A类的DO方法中,把B对象作为参数传入。
public void do(Object obj,B bb){
...
}
调用时,把B对象作为参数传入即可。
方法三:...自己想其他方法吧。:)
{
private String str="A";
public void doit()
{
System.out.println(str); }
}class B extends A
{
private String str="B";
public void dodoit(){
this.doit();
}
public static void main(String[] args){
B b=new B();
b.dodoit();
}
}
执行的结果是打印A。
两种办法(其实就是一种),一就是父类有一个自己或自己超类型的 public or protected 变量,子类可以给这个变量赋值,即把这个变量传给父类。
class A {
protected A a;
}
class B extends A {
void bbb() {
a=this;
}
}
第二种就是父类有 public or protected 方法含有自己或自己超类型的参数。
class A {
protected void aaa(A a) {
}
}
class B extends A {
void bbb() {
aaa(this);
}
}
class t1{
public void do(Object o)
{
t1 t=getA();
... }
t1 getA();
}
class t2 extends t1{
t1 getA(){
return this;
}
}但还是觉得这样模式不对
class a{
public Object self = null;
doSelf()
{
//处理self
}
}
class b extends a {
public b()
{
super();
super.self = this;
}
}
---------------------
这个方法感觉 super.self = this;
这很不美观,想找一个比较好的方法
不过,个人觉得应该写一个类 C ,
A和B都继承自C,然后在A里声明调用B类的实例,
class C
{
...
}class A:extends C
{
do(B tmpB)
....
}
class B:extends C
{
A tmpA = new A();
A.do(this);
]
class A{
public void a1(A a){
……
}
}class B{
B b = new B();
A a = new A();
a.a1(b);
}
你是不是要实现这样的方法?