首页 > 代码库 > 18、內部类向上转型为接口
18、內部类向上转型为接口
package com.lei.duixiang;/** * 內部类向上转型为接口 * 1、非内部类不能被声明为 private 或 protected 访问类型 * 2、从执行结果可以看出,这条语句执行的是内部类中的f() 方法 * 很好地对继承该类的子类隐藏了实现细节,仅为编写子类的人留下一个接口和一个外部类 * 同时也可以调用f() 方法,但是 f()方法的具体实现过程却很好的被隐藏了,这是内部类最基本的用途 * @author Administrator * */interface OutInterface{ //定义一个接口 public void f();}public class InterfereInner { public static void main(String[] args) { OutClass2 out = new OutClass2(); //实例化一个 OutClass2对象 // 调用 doit() 方法,返回一个 OutInterface 接口 OutInterface outInterface = out.doit(); outInterface.f(); //调用 f() 方法 }}class OutClass2{ //定义一个内部类实现 OutInterface接口 private class InnerClass implements OutInterface{ InnerClass(String s){ //构造方法 System.out.println(s); } public void f() { //实现接口中的f()方法 System.out.println("访问内部类的 f() 方法"); } } public OutInterface doit(){ //定义一个方法,返回值类型为 outInterface 接口 return new InnerClass("访问内部类构造方法"); }}
18、內部类向上转型为接口
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。