Thread定义的区别

来源:百度知道 编辑:UC知道 时间:2024/05/22 05:15:41
Thread a=new receive();
receive a = new receicve();

两种定义是有区别的,第一种,如果线程下面定义了除了run外的其他方法,在另外一个java文件中无法访问,换成第二种后就可以访问了,请详细说说区别,谢谢

Receive这个类是继承了Thread类的子类,看下面的解释:
public class A {}
public class B extends A {}

A a = new A(); // ok
A a = new B(); // 父类可以封装子类,调用被子类覆盖方法时调用原父类方法,子类增加的方法不能被封装父类调用;
B b = new B(); // ok 子类调用自身所有方法;
B b = new A(); // false,因为子类可能包含父类没有的方法;

receive是继承Thread的吧。用第一种实例化方法,其他引用的地方是当作Thread对象用的,因为Thread中没有子类下新增的方法,所以用它的地方就不显示。第二种实例化方法,在引用的地方是直接当作receive对象用的,所以里面的方法是全的。