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类方法

                

  • 相关阅读:
    linux 里 /etc/passwd 、/etc/shadow和/etc/group 文件内容解释
    IIS 7.5 配置 php 5.4.22 链接 sql 2008(用PDO链接数据库)
    如何学好一本编程语言
    从零开始学YII2.0
    android AlertDialog 错误 OnClickListener 报错
    胖哥从零开始做一个APP系列文章的通知
    引用自定义控件出现的问题
    java hashMap实现原理
    粗略读完opengl
    求知若饥,虚心若愚
  • 原文地址:https://www.cnblogs.com/xingege/p/4051852.html
Copyright © 2011-2022 走看看