zoukankan      html  css  js  c++  java
  • 经典面试题1

    问:有A和B两个普通类,如何在C类中实现A、B两个类的方法?

     分析:“实现”这个两个字在java中,指的是一个类继承抽象类或实现接口时,必须去实现抽象类的抽象方法或实现接口的所有方法,这里实现也有重写的意思。

             那么 A和B都是普通类,要实现他们的方法就是继承了。

             可是问题又来了,java中只能单继承,无法让C同时继承A、B两个类。

    解决:在java中解决单继承问题,一般是使用接口,其实解决单继承外还有一个方法,那就是内部类。

             内部类会在之后篇文章详解。

             内部类有个特点:外围类和内部类可以相互共享资源。

             正是因为内部类有这个特点,第一步就可以在C类中创建两个内部类分别继承A、B。

             如下:

                   class A{

                         void fa(){

                         }

          }

                   class B{

                         void fb(){

                         }

          }

                   class C {

            InnerA extends A{

                         void fa(){    System.out.println("实现A类的方法");   }

                      }

                      InnerA extends A{

                         void fb(){    System.out.println("实现B类的方法");    }

                      }

         }

                  第二步,为了在其他类中使用C类实现A、B的方法,将两个内部类作为C类的属性。

                  如下:

                      class C {

                         InnerA a=new InnerA();

                         InnerB b=new InnerB();

              InnerA extends A{

                         void fa(){    System.out.println("实现A类的方法");   }

                        }

                        InnerA extends A{

                         void fb(){    System.out.println("实现B类的方法");    }

                       }

         }

                 第三步,如何调用

                 在主方法中使用:

                 C c=new C();

                 c.a.fa();//输出:实现A类的方法

                 c.b.fb();//输出:实现B类方法

                

  • 相关阅读:
    Spring(八)-spring5框架新功能
    Spring(七)-事务操作
    Spring(五)-AOP
    Linux errno错误码
    思考:如何保证服务稳定性?
    CPU性能分析工具原理
    Oracle数据库url格式
    java对象的四种引用:强引用、软引用、弱引用和虚引用
    给老板汇报技术规划的要点
    后端程序员必备:分布式事务基础篇
  • 原文地址:https://www.cnblogs.com/xingege/p/4051852.html
Copyright © 2011-2022 走看看