先通过代码简单描述一下你的问题: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 { ... } }