java代码-关于java多态的问题,不是很懂。

问题描述

关于java多态的问题,不是很懂。
在java se中为什么利用父类引用指向子类对象。而不直接new子类呢,这样有什么好处?

解决方案

换句话说,每天到吃饭的点,我们习惯会说,“去吃饭”,而不是会说“去吃青椒肉丝盖浇饭”。父类相当于一个范围,子类相当于一个具体的。

解决方案二:
昨天看到有关java多态的一篇文章,内容如下文章转自:http://blog.csdn.net/thinkGhoster/archive/2008/04/19/2307001.aspx??????????????????????? 深入理解java多态性????????昨天看到一个关于多态性的帖子,参考了回帖者的理解,加入了一些自己的看法,整理出来供大家参考,不一定完全正确,欢......
答案就在这里:关于java多态的问题

解决方案三:
这是多态的一种表现,当你的子类很多种的时候,声明父类的引用,创建对象的时候可以有很多选择,在新添加子类的时候,也符合开闭原则。

解决方案四:
因为子类是对父类的一个改进和扩充,所以一般子类在功能上较父类更强大,属性较父类更独特。
定义一个父类类型的引用指向一个子类的对象既可以使用子类强大的功能,又可以抽取父类的共性。
所以,父类类型的引用可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,它是无可奈何的;
同时,父类中的一个方法只有在在父类中定义而在子类中没有重写的情况下,才可以被父类类型的引用调用;
对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将会调用子类中的这个方法,这就是动态连接。

解决方案五:
你说的这个特性本身是Java语法所支持的,然而这么做的原因不是Java层面上的事情,而是设计模式层面上的事情,简而言之,你百度下“面向接口进行编程”

解决方案六:
这个是方便程序逻辑处理.
比如一个父类People有眼睛耳朵的方法.
然后有子类APeopleBPeople继承它但是两个子类的眼睛耳朵方法实现都不一样.
但是在程序中为了能让不同的人在一个集合里面所以集合对象只能是People.但是本质却是不同的子类对象.

解决方案七:
如果按照你说的子类就自己new,自己调用,那么为什么还要继承呢?

解决方案八:
简单来说是为了以后修改方便吧。
比如我们所要引用的子对象因为需求改变,我只需要改 new 后面的子类名称就好了,如果用子类的对象赋给子类的引用那修改的话就得改至少两处地方了。(个人愚见)

时间: 2024-11-02 06:05:24

java代码-关于java多态的问题,不是很懂。的相关文章

从Java代码到Java堆

优化应用程序代码的内存使用并不是一个新主题,但是人们通常并没有很好地理解这个主题.本文将简要介绍 Java 进 程的内存使用,随后深入探讨您编写的 Java 代码的内存使用.最后,本文将展示提高代码内存效率的方法,特别强调了 HashMap 和 ArrayList 等 Java 集合的使用. 背景信息:Java 进程的内存使用 通过在命令行中执行 java 或者启动某种基于 Java 的中间件来运行 Java 应用程序时,Java 运行时会创建一个操作系统进程,就像您运行基于 C 的 程序时那样

诊断 Java 代码: 提高 Java 代码的性能 尾递归转换能加快应用程序的速度,但不是所有的 JVM 都会做这种转换

简介: 很多算法用尾递归方法表示会显得格外简明.编译器会自动把这种方法转换成循环,以提高程序的性能.但在 Java 语言规范中,并没有要求一定要作这种转换,因此,并不是所有的 Java 虚拟机(JVM)都会做这种转换.这就意味着在 Java 语言中采用尾递归方法将导致巨大的内存占用,而这并不是我们期望的结果.Eric Allen 在本文中阐述了动态编译将会保持语言的语义,而静态编译则通常不会.他说明了为什么这是一个重要问题,并提供了一段代码来帮助判断您的即时(JIT)编译器是否会在保持语言语义的

java代码-用Java代码实现字母的自增

问题描述 用Java代码实现字母的自增 自增规则,从A-Z,AA-AZ,BA-BZ,... 哪位高手能指点一下. 解决方案 public class Main { public static void main(String[] args) { String s = " ABCDEFGHIGKLMNOPQRSTUVWXYZ"; for (int j = 0; j < 26; j++) { for (int i = 1; i < 26; i++) { System.out.p

诊断Java代码: 提高Java代码的性能

很多算法用尾递归方法表示会显得格外简明.编译器会自动把这种方法转换成循环,以提高程序的性能.但在 Java 语言规范中,并没有要求一定要作这种转换,因此,并不是所有的 Java 虚拟机(JVM)都会做这种转换.这就意味着在 Java 语言中采用尾递归方法将导致巨大的内存占用,而这并不是我们期望的结果.Eric Allen 在本文中阐述了动态编译将会保持语言的语义,而静态编译则通常不会.他说明了为什么这是一个重要问题,并提供了一段代码来帮助判断您的即时(JIT)编译器是否会在保持语言语义的同时做尾

java代码-用Java做了一个记忆翻盘游戏,但是不知道怎么加进声音

问题描述 用Java做了一个记忆翻盘游戏,但是不知道怎么加进声音 10C 求大神帮忙,才学了两个月,用Java弄了一个记忆翻盘游戏,游戏界面已经可以呈现出来,但是不知道怎么加进声音,最好能提供一下代码,拜托拜托- 解决方案 import javax.sound.midi.*;try {Sequencer sequencer = MidiSystem.getSequencer();sequencer.open();Sequence sequence = MidiSystem.getSequence

java代码 类-java中可以直接对类名进行引用吗?

问题描述 java中可以直接对类名进行引用吗? 我是初学者,最近看到了下面的代码: public class ActivityCollector { public static List<Activity> activities = new ArrayList<Activity>(); public static void addActivity(Activity activity) { activities.add(activity); } public static void

java代码-将java的class存入数据库,这个叫什么?如何实现?

问题描述 将java的class存入数据库,这个叫什么?如何实现? 目前经理要求在做一个业务统计的程序,他要求把写好的类存入数据库,类比如是org.com.test.HelloDate,数据库就是存放这个,然后由启动统计的主方法调用数据库存放的这个类来实现统计,这个究竟在java里是什么原理?如何实现呢?求给位高手帮忙解答 解决方案 Java反射Reflect机制啊. ClassLoader loader = Thread.currentThread().getContextClassLoade

java代码-用java实现从不同服务器上下载的table进行比较与覆盖

问题描述 用java实现从不同服务器上下载的table进行比较与覆盖 图片如果看不到,请进我空间的相册查看.java:从不同的服务器上下载test table,然后将其中一个服务器的table覆盖到另外一个服务器上的table,要求table里面的属性能够更改(如string->int),保留原有的数据,本人菜鸟级别,第一次配到这样的难题,求各位大神给代码提示

java代码-求java识别三角形,圆形,方形的具体代码。

问题描述 求java识别三角形,圆形,方形的具体代码. 图片有背景,中间有图形,要求对图片进行分析,识别出是哪一种图形..初学者,求详细代码研究研究~谢谢..