51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1831|回复: 1
打印 上一主题 下一主题

[在学] 子类直接创建对象和父类的引用指向子类的对象有什么区别?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-8 11:47:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下一块代码我子类直接创建对象和父类的引用指向子类的对象运行结果是一样的,平常做一些练习的时候也发现这两者运行结果都是一样,子类直接创建对象和父类的引用指向子类的对象有什么区别?除了概念上的多态

public class Test10 {
public static void main(String[] args) {
  A1 a1=new A1(1);
  a1.show();
  System.out.println("a1.x="+a1.x);
  A12 a12 =new A12(10,20);
  a12.show();
  System.out.println("a12.x="+a12.x);
  A1 c =new A12(10,20);
  c.show();
  System.out.println("c.x="+c.x);
  
}
}
class A1{
int x;
A1(int x){
  this.x=x;
}
void show(){
  System.out.println("a1.x="+x);
}
}
class A12 extends A1{
A12(int x,int y){
  super(x);
  this.x=y;  
}
void show(){
  System.out.println("super.x="+super.x+" this.x="+this.x);
}
}


在学课程:
零基础学编程JAVA语言直通班
http://www.atstudy.com/course/1006

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2019-1-8 11:51:17 | 只看该作者
仅仅是这个代码,确实就是多态的区别。多态是个非常重要的基本特性,几乎所有的设计模式都依赖于此。

另外,如果父子类的show方法是static void show()的话,你就能看到不同了。

回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-27 20:36 , Processed in 0.064278 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表