您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页内部类与向上转型

内部类与向上转型

来源:二三娱乐

在第一个包中创建一个至少有一个方法的借口,然后在第二个包内创建一个类,在其中增加一个protected的内部类以实现这个借口,在第三个保重,继承这个类,并在一个方法中返回该protected内部类的对象,在返回的时候向上转型为第一个包中的接口类型。

package net.sailfish.inner.package1;

/**
 * Created by travis on 2016/9/6.
 */
public interface Contents {
    int value();
}
package net.sailfish.inner.package2;

import net.sailfish.inner.package1.Contents;

/**
 * Created by travis on 2016/9/6.
 */
public class TestContents {
    protected class PContents implements Contents{
        public PContents() {//这儿如果没有构造函数,在TestPContents中就会报错
        }

        private int i = 99;
        public int value() {
            return i;
        }
    }
}

package net.sailfish.inner.package3;

import net.sailfish.inner.package1.Contents;
import net.sailfish.inner.package2.TestContents;

/**
 * Created by travis on 2016/9/6.
 */
public class TestPContents extends TestContents {
     Contents makeContents(){
      return this.new PContents();
    }

    public static void main(String[] args) {
        TestPContents c = new TestPContents();
        System.out.println(c.makeContents().value());
    }
}
  • 验证作用域
  • 内部类的向上转型
  • .new语法的使用
  • 书中是这么说的,need public constructor to create one in Ex6Base child,需要给Ex6Base的子类创建一个公共的

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务