首页 > 代码库 > 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、內部类向上转型为接口