suppoer
class Car
...{
class Wheel
...{
}
}
class PlaneWheel extends Car.Wheel
...{
PlaneWheel(Car car)
...{
car.super();
}
public static void main(String[] args)
...{
Car car=new Car();
PlaneWheel pw=new PlaneWheel(car);
}
}内隐类
interface Animal
...{
void eat();
void sleep();
}
class Zoo
...{
private class Tiger implements Animal
...{
public void eat()
...{
System.out.println("tiger eat");
}
public void sleep()
...{
System.out.println("tiger sleep");
}
}
Animal getAnimal()
...{
return new Tiger();
}
/**//*Animal getAnimal()
{
return new Animal()
{
public void eat()
{
System.out.println("animal eat");
}
public void sleep()
{
System.out.println("animal sleep");
}
};
}*/
}
class AnimlTest
...{
public static void main(String[] args)
...{
Zoo z=new Zoo();
Animal an=z.getAnimal();
an.eat();
an.sleep();
}
}匿名类可以实现一个接口当中的方法和一个类中的方法同名但是内容不同
interface Machine
...{
void run();
}
class Person
...{
void run()
...{
System.out.println("run");
}
}
class Robot extends Person
...{
private class MachineHeart implements Machine
...{
public void run()
...{
System.out.println("heart run");
}
}
Machine getMachine()
...{
return new MachineHeart();
}
}
class Test
...{
public static void main(String[] args)
...{
Robot robot=new Robot();
Machine m=robot.getMachine();
m.run();
robot.run();
}
}
匿名类可以实现一个抽象类和一个类
class A
...{
void fn1()
...{
}
}
abstract class B
...{
abstract void fn2();
}
class C extends A
...{
B getB()
...{
return new B()
...{
public void fn2()
...{
}
};
}
}
class Test
...{
static void method1(A a)
...{
a.fn1();
}
static void method2(B b)
...{
b.fn2();
}
public static void main(String[] args)
...{
C c=new C();
method1(c);
method2(c.getB());
}
}

被折叠的 条评论
为什么被折叠?



