我很好奇如何使用扩展类的方法。 例如
public class ConnectThread extends Thread {
public ConnectThread(BluetoothDevice device) {}
public void run() {}
public void write() {}
}
然后
Thread myThread = new ConnectThread(device);
myThread.run();
有效,因为在父类Thread中有一个名为run()的方法。但是我无法做到
myThread.write()
因为write()不是Thread类的一部分。我如何使用write()? 谢谢!
答案 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()