public class A{
public int i;
}
public class B{
public void put(A a){
System.out.println(a.i);
}
}
public interface IBase{
void say();
}
public class A implements IBase{
@Override
public void say() {
System.out.println("I am A");
}
}
public class B implements IBase{
@Override
public void say() {
System.out.println("I am B");
}
}
public class C{
public void put(IBase base){
base.say();
}
}
public class Base{
public void say(){
System.out.println("I am Base");
}
}
public class A extends Base{
@Override
public void say() {
System.out.println("I am A");
}
}
public class B extends Base{
@Override
public void say() {
System.out.println("I am B");
}
}
public class C{
public void put(Base base){
base.say();
}
}
public class A{
public void aSay() {
System.out.println("I am A");
}
}
public class Base{
public A a;
public Base(A a){
this.a=a;
}
public void baseSay(){
a.aSay();
}
}
public class B{
public void put(Base base){
base.baseSay();
}
}
public static void main(String[] args){
A a=new A();
Base base=new Base(a);
B b=new B();
b.put(base);
}
END 十期推荐 【221期】面试官:谈谈内存泄漏和内存溢出的联系与区别 【222期】ZooKeeper 相关面试演练 【223期】面试官:在MySQL查询中,为什么要用小表驱动大表 【224期】MySQL索引相关面试演练 【225期】面试官:公司项目中Java的多线程一般用在哪些场景? 【226期】面试官:内存耗尽后Redis会发生什么 【227期】面试官:说说双重检查加锁单例模式为什么两次判断? 【228期】面试高频:Java常用的八大排序算法一网打尽! 【229期】面试官:怎么解决Eureka某一个服务挂掉的问题? 【230期】面试官:讲讲Bean的加载过程 ? ~