关于上朔造型的思考!有点地方想不明白 是懒得回答还是也像我不清楚呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 虽然上溯为父类对象了,但自己的特征(属性和方法)并没有消失,所以不能随意转化成其他不同的派生类比如我们规定动物这个类,它有跑、跳、吃、叫四个特征再定义一个黄狗类,它继承并覆盖了动物的跑、跳、吃、叫四个特征,并且还扩展出自己的属性--黄毛我们看到一条具体的黄狗时,我们可以说这是一条狗,也可以说这是一只动物但无论我们用什么概念去称呼它,在我们面前的“黄狗”这个实质没有任何变化不会因为我们说它是动物,它的“黄毛”这个属性就消失了,“狗叫”这个方法就还原成了动物类中定义的“动物叫”所以如果这时我们让眼前这只上溯回动物概念的事物发出叫声的话,得到的结果仍然会是狗叫声因此,如果我们强制这个“黄狗”的实质在被回溯到动物层后再转换成猫类动物,并且还想让它发出猫叫声,这显然是不可能的,是非法的也许可以这样理解:我们把一个具体的派生类对象上溯成基类时,其实只是从概念的层次上去约束了它应该暴露的属性和方法等特征。最后用一个示例程序说明:package com.zcjl.test;public class TestClass { public static void main(String[] args) { Object obj1 = new String("A String Object"); System.out.println(obj1.toString()); Object obj2 = new TestClass(); System.out.println(obj2.toString()); //System.out.println((String) obj2); // 非法,因为TestClass和String虽然同样继承自Object,但却不是String类及其派生类的实例 //System.out.println(obj2.show()); // 非法,因为Object类没有定义show()方法 System.out.println((obj1 instanceof String)); System.out.println((obj2 instanceof TestClass)); } public String toString() { return "A TestClass Object"; } public String show() { return "TestClass.show()"; }}执行的结果是:A String ObjectA TestClass Objecttruetrue 关于Java学习之路给点意见月资料 关于内部类的问题 java dbswing [求助]一个类如何编程线程安全的? 如何替换文件中的某些字符串 请教!!java中的参数传值还是传引用? 关于myEclipse的问题 问一个有关平台的问题 欢迎讨论Websphere和Weblogic的支持率? 快被oracle玩死了,谁能告诉我为啥插入条数不同结果差别这么大!? 请教 在不同的jar里,class访问class的问题,解决立即给分
再定义一个黄狗类,它继承并覆盖了动物的跑、跳、吃、叫四个特征,并且还扩展出自己的属性--黄毛
我们看到一条具体的黄狗时,我们可以说这是一条狗,也可以说这是一只动物
但无论我们用什么概念去称呼它,在我们面前的“黄狗”这个实质没有任何变化
不会因为我们说它是动物,它的“黄毛”这个属性就消失了,“狗叫”这个方法就还原成了动物类中定义的“动物叫”
所以如果这时我们让眼前这只上溯回动物概念的事物发出叫声的话,得到的结果仍然会是狗叫声因此,如果我们强制这个“黄狗”的实质在被回溯到动物层后再转换成猫类动物,并且还想让它发出猫叫声,这显然是不可能的,是非法的
也许可以这样理解:
我们把一个具体的派生类对象上溯成基类时,其实只是从概念的层次上去约束了它应该暴露的属性和方法等特征。
最后用一个示例程序说明:
package com.zcjl.test;
public class TestClass { public static void main(String[] args) {
Object obj1 = new String("A String Object");
System.out.println(obj1.toString()); Object obj2 = new TestClass();
System.out.println(obj2.toString()); //System.out.println((String) obj2); // 非法,因为TestClass和String虽然同样继承自Object,但却不是String类及其派生类的实例
//System.out.println(obj2.show()); // 非法,因为Object类没有定义show()方法 System.out.println((obj1 instanceof String));
System.out.println((obj2 instanceof TestClass));
} public String toString() {
return "A TestClass Object";
} public String show() {
return "TestClass.show()";
}
}执行的结果是:
A String Object
A TestClass Object
true
true