黑马程序员技术交流社区

标题: 类的Extends之间的上下转化 [打印本页]

作者: 抽烟男孩    时间: 2013-4-1 22:30
标题: 类的Extends之间的上下转化
本帖最后由 抽烟男孩 于 2013-4-2 08:54 编辑

关于对象的转化,总是把人糊涂。下面代码两个类,我想问为什么我想加的两句代码加不上?
还有结果调用的方法不一样?如果可以的话我想问Person goodboy= new Student()这句的goodboy对象时什么类?
内存为这个类分配的内存空间是Person类的大小还是Student的大小?
不好意,问题太多。
  1. class Person{
  2. int age ;
  3. String name;
  4. void say(){
  5. System.out.println("我的年龄是"+age+"我的名字是"+name);
  6. }
  7. }
  8. class Student extends Person{
  9. int age;
  10. String name;
  11. int score;
  12. void say(){
  13. System.out.println("我的年龄是"+age+"我的名字是"+name+"我的分数是"+score);
  14. }
  15. void Study(){
  16. System.out.println("我在学习");
  17. }
  18. }
  19. public class Test {
  20. public static void main(String[] args){
  21. Person man = new Person();
  22. man.age = 20;
  23. man.name = "张山";
  24. Person goodboy = new Student();
  25. goodboy.age = 22;
  26. goodboy.name = "李四";
  27. //goodboy.score =80;我想加这句话但是加上有问题;
  28. man.say();
  29. goodboy.say();
  30. //goodbay.Study();我想加这句话也有问题
  31. }
  32. }
复制代码
真{:soso_e166:}求解惑!!!
作者: 张昶    时间: 2013-4-1 22:50
Person goodboy= new Student(); 这句的goodboy对象是Person类所创建的对象;
内存为这个类分配的内存空间是Person类的,而new Student()是另外的一个对象。
作者: HM何伟    时间: 2013-4-1 22:55
Person goodboy = new Student();这里是多态的体现.在使用子父体系功能时,先参阅父类.父类有的才能被调用.
goodboy.score =80;
man.say();
goodboy.say();//这个功能没有.
oodbay.Study();//这个功能父中也没有.

作者: 董霁辉    时间: 2013-4-1 22:55
这是一个面向对象多态中的特点你也可以理解为注意事项,以下是我学习时做到比较,你先看一下再看一遍视频 毕老师基础教程第八天的内容,就懂了
多态特点(注意事项)
        在多态中非静态成员函数的特点:
        在编译时期:        参阅引用型变量所属的类中是否有调用的方法.如果有,编译通过,如果没有编译失败
        在运行时期:参阅对象所属的类中是否有调用的方法.
        总结:成员函数在多态调用时,编译看左边,运行看右边.
       
        在多态中,成员变量的特点:
        无论编译还是运行,都参考左边(引用型变量的类)
        在多态中静态成员函数的特点:
        无论编译还是运行,都参考左边(引用型变量的类)

楼主再复习一下毕老师基础教程第八天的内容,你的问题都会解开
作者: HM何伟    时间: 2013-4-1 22:55
Person goodboy = new Student();这里是多态的体现.在使用子父体系功能时,先参阅父类.父类有的才能被调用.
goodboy.score =80;
man.say();
goodboy.say();//这个功能没有.
oodbay.Study();//这个功能父中也没有.

作者: 陈丽莉    时间: 2013-4-1 23:12
若还有问题,继续追问; 没有的话,改成【已解决】哦~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2