首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

java小记和java内部类的使用

java小记和java内部类的使用

为什么学习java

我是一名iOS开发者,大学基本没写过代码,后来是走上了培训这条不归路。一开始工作时候的不适应和迷茫,到现在挺享受现在的工作。学习java是因为java语言在后端的统治力,以及我对后端业务的浓厚兴趣。我对人工智能有很好的期待,人工智能的发展的前提是大数据,说到大数据首先要会玩数据,后端有很多跟数据打交道比较频繁的业务场景。而且在很多公司的时候,懂后端业务的技术跟容易获得机会。以上是我想要学习java的原因。
java内部类的使用

有这样一个业务场景,当我们定义了一个接口,然后又有一个基类。此时接口和基类里面有一个方法是重名的,此时如果子类需要调用接口和子类方法的时候没有办法直接实现。解决方案是通过内部类变相的实现接口的方法。
声明接口和基类

    interface Teachable{    void work();}
    public class Programmer {   
    private String name;   
         public Programmer(){
    };   
    public Programmer(String name){     
         this.name = name;   
     }   
     public void setName(String name) {
           this.name = name;  
      }   
    public String getName() {      
         return name;   
     }   
    //
      public void work(){        
    System.out.println(name+"来自"+getClass());   
     }
    }

创建子类和子类内部类

    public class TeachableProgrammer extends Programmer {  
      public TeachableProgrammer(){
    }   
    public TeachableProgrammer(String name){   
         super(name);   
     }  
      private void teach(){
           System.out.println(getName() + "来自接口");   
     }      
    //内部类
    private class Clourse implements Teachable {   
     //来自接口的
         public void work(){            
                  teach();      
     }  
      }   
    public Teachable getCallbackReference(){      
       return new Clourse();   
    }
    }

调用和Debug

    public class TestTeachableProgrammer {
       public static void main (String [] args) {      
      TeachableProgrammer tp = new TeachableProgrammer("你");      
           tp.work();      //来自父类
          tp.getCallbackReference().work();   //来自接口实现
     }
    }

其实,我想最简单的解决办法就是方法名不要重名就好了。
返回列表