使用扩展类的方法

时间:2014-04-27 03:08:44

标签: java class extends

我很好奇如何使用扩展类的方法。 例如

public class ConnectThread extends Thread {

public ConnectThread(BluetoothDevice device) {}
public void run() {}
public void write() {}
}

然后

Thread myThread = new ConnectThread(device);
myThread.run(); 

有效,因为在父类Th​​read中有一个名为run()的方法。但是我无法做到

myThread.write() 

因为write()不是Thread类的一部分。我如何使用write()? 谢谢!

3 个答案:

答案 0 :(得分:2)

((ConnectThread)myThread).write();

答案 1 :(得分:1)

myThread.write()不起作用,因为它只在子类中定义,而您的对象是父类。

因此,通常在使用多态时,所有方法都在父类中定义,并且实现可以跨子类进行更改。这是您可以通过编写不同的子类来更改实现,但如果使用父类对象,则代码不会更改。

例如:

我有一个带有方法区的类Shape:

Class Shape { public void area() { }};

Class Circle extends Shape {public void area { }};

Class DrawShapes { public void draw (Shape a) { a.draw()}};

现在,在上面的设置中,您可以通过扩展Shape类继续实现新形状,但DrawShapes保持不变。

答案 2 :(得分:0)

您可以将父对象引用类型转换为子类,如

((ConnectThread)MyThread的).WRITE()