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(); } }

【java小记和java内部类的使用】调用和Debug
public class TestTeachableProgrammer { public static void main (String [] args) { TeachableProgrammer tp = new TeachableProgrammer("你"); tp.work(); //来自父类 tp.getCallbackReference().work(); //来自接口实现 } }

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

    推荐阅读