inner class(2)

来源:互联网 发布:2017交通安全事故数据 编辑:程序博客网 时间:2024/06/14 20:22
import java.io.IOException;class Car{class Wheel{}}//不能直接继承内部对象//继续时,先调用够着杉树,需要从外部类建立到内部类的联系public class testinnerextend  extends Car.Wheel{//需要通过构造函数,传递外部类对象testinnerextend(Car car){car.super();}public static void main(String[] args) throws IOException {//Car car = new Car();//testinnerextend t= new testinnerextend(car);Zoo z = new Zoo();Animal an = z.getAnnmal();an.eat();an.sleep();}}//内部类也可以实现接口interface Animal{void eat();void sleep();}class Zoo{//内部类去实现接口//class Tiger implements Animal//如果把内部类申明为私有的,则不能在其他地方可以用Outer.Inner去访问接口。//只能间接的使用内部类实现的接口去访问private class Tiger implements Animal{public void eat(){System.out.println("tiger eat");}@Overridepublic void sleep() {// TODO Auto-generated method stubSystem.out.println("tiger sleep");}}Animal getAnnmal(){return new Tiger();}/*Animal getAnnmal(){//返回对象之前实现接口的方法//匿名的内部类return new Animal() {@Overridepublic void sleep() {System.out.println("Animal sleep");}@Overridepublic void eat() {// TODO Auto-generated method stubSystem.out.println("Animal eat");}};//注意分号,这是不能少的}*/}

原创粉丝点击