首先这是一个匿名内部类问题。
左边的new Thread( new Runnable() {public void run() { myt3.m4t1(inner);} }, "t1");是子类对象,
Thread t1 是定义一个父类用于接收右边的类型。
new Runnable() {public void run() { myt3.m4t1(inner);}是覆盖了父类中的方法。
匿名内部类是内部类的简写方式,不需要知道内部类名的情况写出来的。
给你举个例子:
abstract class AbsDemo
{
abstract void function();
abstract void show();
}
class Outer
{
int num = 4;
/*
class Inner extends AbsDemo
{
void function(){}
void show(){}
}
*/
void method()
{
// Inner in = new Inner();
// in.function();
// in.show();
AbsDemo a = new AbsDemo() //多态的体现,new AbsDemo(){}--子类对象
{
void function(){}
void show(){}
};// 匿名类部类
a.function();// 因为覆盖父类的两个方法,不出错
a.show();
}
|