/*
匿名內(nèi)部類
定義: 定義在內(nèi)種無名稱的類
好處:簡化書寫
前提: 必須存在繼承或者實現(xiàn)關(guān)系才能使用
適用:匿名內(nèi)部類一般用于實參
*/
abstract class Animal
{
public abstract Animal run();
public abstract void sleep();
}
class Outer
{
public void print()
{
//需求:在方法的內(nèi)部定義一個類繼承Animal類烟号,然后調(diào)用run方法
//解決方式一:局部內(nèi)部類:
/*
class Dog extends Animal
{
public void run()
{
System.out.println("我有四條腿跑的很快");
}
}
Dog d1 = new Dog();
d1.run();
*/
//解決方式二: 匿名內(nèi)部類:匿名內(nèi)部類僅僅是沒有名稱而已
/*
new Animal()
{
public Animal run()
{
System.out.println("我有四條腿,我跑的很快");
return this;? //返回當(dāng)前對象,供訪問替他變量
}
public void sleep()
{
System.out.println("狗狗在睡覺");
}
}.run().sleep();
*/
//解決方法三:使用多態(tài)的方式
Animal a = new Animal() //多態(tài)
{
public Animal run()
{
System.out.println("我有四條腿畔况,我跑的很快");
return this;? //返回當(dāng)前對象僻焚,供訪問替他變量
}
public void sleep()
{
System.out.println("狗狗在睡覺");
}
public void bite() //特有的方法 無法通過多態(tài)訪問,如果出現(xiàn)了這種情況,只能通過局部內(nèi)部類來解決;
{
}
}
}
}
class Demo5
{
public static void main(String[] args)
{
Outer o1 = new Outer();
o1.print();
}
}