java对象的调用_java 对象调用
先通过代码简单描述一下你的问题:
public interface A {}
public class B implements A {
public void b() {}
}
public abstract class C {
private A a;
public void setA(A a) {
this.a = a;
}
...
}
public class D extends C {
...
public void d() {
// 此处想通过this.a访问到对象B的b方法
}
}
修改方式一:
public abstract class C {
protected A a;
public void setA(A a) {
this.a = a;
}
...
}
public class D extends C {
...
public void d() {
// 此处通过this.a访问到传入对象B的b方法
if(this.a instanceof B) {
((B) this.a).b();
}else {
...
}
}
}
修改方式二:
public abstract class C {
private A a;
public void setA(A a) {
this.a = a;
}
protected A getA() {
return a;
}
...
}
public class D extends C {
...
public void d() {
// 此处想通过getA()访问到传入对象B的b方法
A a = getA();
if(a instanceof B) {
((B) a).b();
}else {
...
}
}
}
先通过代码简单描述一下你的问题: public interface A {} public class B implements A { public void b() {} } public abstract class C { private A a; public void setA(A a) { this.a = a; } ... } public class D extends C { ... public void d() { // 此处想通过this.a访问到对象B的b方法 } } 修改方式一: public abstract class C { protected A a; public void setA(A a) { this.a = a; } ... } public class D extends C { ... public void d() { // 此处通过this.a访问到传入对象B的b方法 if(this.a instanceof B) { ((B) this.a).b(); }else { ... } } } 修改方式二: public abstract class C { private A a; public void setA(A a) { this.a = a; } protected A getA() { return a; } ... } public class D extends C { ... public void d() { // 此处想通过getA()访问到传入对象B的b方法 A a = getA(); if(a instanceof B) { ((B) a).b(); }else { ... } } }上一篇:
IDEA上Java项目控制台中文乱码