tur*_*oup 2 java class abstract
所以我在java中学习Abstract类,当我读其他人的代码时,我看到了以下内容:
public abstract class Message implements Serializable, Comparable<Message> {
//stuff in this class
}
Run Code Online (Sandbox Code Playgroud)
在同一项目下的另一个类中,程序员声明了一个方法如下:
public void notifyMessage(Message msg, HostType sourceType) {
//some stuff in this method
}
Run Code Online (Sandbox Code Playgroud)
请注意,在notifyMessage声明中,变量msg的类型为"Message".我以为所有的抽象类都无法实例化?那么声明"Message msg"是什么意思?有人能解释这对我意味着什么吗?提前致谢
嗯,这意味着你可以收到任何类型的消息(儿童),如果你有的话,让我们用其他方式
public class Letter extends Message ...
Run Code Online (Sandbox Code Playgroud)
您可以发送Letter对象作为notifyMessage的参数
这样的事情是可能的:
someObject.notifyMessage( new Letter() , ... )
Run Code Online (Sandbox Code Playgroud)
java.awt.Component是抽象的JPanel继承了Container(实际上是JComponent第一个)Container有add(Component c)
这意味着您可以添加任何组件,如JButton,JLabel等.
http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/Container.html#add(java.awt.Component) http://docs.oracle.com/javase/1.4. 2 /文档/ API/JAVA/AWT/Component.html
如果定义该对象的抽象方法和主体,也可以创建抽象类的对象.
Message m = new Message() {
//if no abstract method, then this is empty
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3218 次 |
| 最近记录: |