10.4 内部类与向上转型

来源:互联网 发布:淘宝虚拟物品怎么发布 编辑:程序博客网 时间:2024/06/13 10:06
可以通过内部类来隐藏具体实现, 当将内部类指定为private/protected时, 其它类就不能通过类名来直接访问内部类了, 也就隐藏了内部类的具体实现, 而外部类可以通过内部类实现的一些接口来提供其它类需要的一些服务, 并且在这种情况下对外提供的向上转型的引用是不能逆向转型的(因为其他类没有类名访问权限), 所以有很强的细节屏蔽/保护功能.
package com.cnsuning.inter;public interface Flyable {void fly();}package com.cnsuning.inter;public interface Runable {void run();}package com.cnsuning.animals;import com.cnsuning.inter.Flyable;import com.cnsuning.inter.Runable;public class Zoon {private class Duck implements Flyable{@Overridepublic void fly() {// TODO Auto-generated method stubSystem.out.println("Duck fly");}}protected class Tiger implements Runable{@Overridepublic void run() {// TODO Auto-generated method stubSystem.out.println("Tiger run");}}public Runable getRunableAnimal(){return new Tiger();}public Flyable getFlyableAnimal(){return new Duck();}public Zoon() {// TODO Auto-generated constructor stub}public static void main(String[] args) {// TODO Auto-generated method stubZoon z = new Zoon();Runable run = z.getRunableAnimal();Flyable fly = z.getFlyableAnimal();run.run();fly.fly();}}
Tiger run
Duck fly


0 0
原创粉丝点击