本文面向Java初学者,我们在教材上经常会看到Java是多态的,可是一般的教科书只停留在理论上,很少有实际操作。现在把多态个概念用代码简单描述一下,由于本人水平有限,所以难免有不足之处。
首先我们有这样几个类,电脑,个人电脑,笔记本电脑。
java 代码
- class Computer{
-
- public void turnOn(){
- }
- }
现在有了电脑这个类,那么个人PC,笔记本都是继承他。
java 代码
- class PC extends Computer{
- public void turnOn(){
- System.out.println("PC has turn on");
- }
- }
-
- class NB extends Computer{
- public void turnOn(){
- System.out.println("NB has turn on");
- }
- }
我们看到,每个类都有一个 turnOn()方法,而在父类中这个方法是空的,子类中各自有不同的实现,到这里可能还不太明显。如果有另外一个方法,要接受这些类作为参数,就像这样
java 代码
- class Test{
- public void go(Computer computer){
- computer.turnOn();
- }
- }
这个方法接收的是基类参数,当然我们是可以把子类传递给方法的,也应该这么做。
java 代码
- go(new PC());
- go(new NB());
这样他就会去调用具体子类的turnOn()方法,所以这两次调用的输出是不一样的.如果不用基类作为参数,我们想调用每个子类的turnOn()方法,那么就要些两个方法体一样的go()而接收不同的参数的重载。
java 代码
- public void go(PC computer){
- computer.turnOn();
- }
-
- public void go(NB computer){
- computer.turnOn();
- }
这样些也是正确的,但是这样会产生很多重复代码,而且也不易维护,当然这只是多态中最基本的一个部分,Java多态机制还有很多特性,关于这些建议大家看看 java编程思想(think in java)这本书,里面讲的很详细,这里只是很简单的描述了一下,还望个各位高手不要见笑。
分享到:
相关推荐
Java从设计之初就考虑到了网络计算的需求,支持多种网络功能,包括网络编程、远程方法调用(RMI)等。这使得Java非常适合于开发复杂、多层的网络应用。 Java语言的解释性也是其技术特点之一。Java程序可以采用JIT...
Java在20世纪90年代末至21世纪初迅速崛起,成为企业和互联网应用开发的主要语言之一。 #### 二、Java与C/C++的关系 **1. Java与C/C++的联系:** - **语法相似性**:Java继承了C/C++的语法风格,使得熟悉这两种...
6. **网络功能**:Java设计之初就考虑了网络应用,提供了丰富的网络编程API。 ### Java与C/C++的区别 1. **跨平台**:C/C++编译后的程序依赖于特定的硬件平台,而Java的字节码在JVM上运行,实现跨平台。 2. **指针*...
"python初体验"的文件旨在引导你逐步了解并掌握Python的基本概念和使用方式。 首先,"认识python"是学习过程的第一步。Python的设计哲学强调代码的可读性和简洁的语法,它采用了缩进来表示代码块,这与许多其他编程...
《林信良Java学习笔记》是一本深受程序员喜爱的Java学习资源,尤其因其繁体字版,对于中文读者来说,提供了更为亲切的阅读体验。这本书深入浅出地讲解了Java编程语言的基础知识和高级特性,旨在帮助初学者快速掌握...
编写Java程序的初体验通常是创建一个简单的"Hello, World!"程序,这涉及到创建一个Java源文件(如HelloWorld.java),然后编译和运行。Java源代码由类定义组成,如class HelloWorld { ... },其中main方法是程序的...
学习Java的基础包括语法、类与对象、继承、多态、接口、异常处理、集合框架等。深入理解这些概念是成为一名合格Java开发者的基础。 2. **Java Web**: JavaWeb是Java在Web开发中的应用,包括Servlet、JSP、JSTL、...
全书分4篇,共27章,其中第1篇为技能学习篇,主要包括java初体验、eclipse与netbeans、基本语法、控制流程语句、数组、类与对象、字符串、继承与多态、接口与抽象类、集合与异常处理、io流、tcp与udp技术、窗体程序...
- **住房更换**:支持客户在入住期间更换房间,提供灵活的住宿体验。 2. **设计意义**: - 提升服务质量:系统能有效提升酒店的服务档次,提高客户满意度,增强酒店的市场竞争力。 - 优化管理效率:通过自动化...
在Java 2应用编程的世界里,开发者们常常面临各种挑战,而解决这些问题的关键在于理解和掌握核心概念、设计模式以及最佳实践。...无论你是初入Java殿堂的新手,还是寻求提升的开发者,这个资源都将为你提供宝贵的指导。
Python编程学习初体验 Python是一种高级、通用的编程语言,以其简洁、易读的语法而闻名,被广泛应用于数据科学、机器学习、网络开发、自动化脚本等多个领域。初学者在接触Python时,通常会对其丰富的标准库、强大的...
总的来说,"Java 2学习指南"涵盖了从入门到进阶的全方位Java知识,无论你是初入编程的新手还是寻求提升的开发者,都能从中受益。配合提供的"Java2 学习指南.pdf"和"中国IT认证实验室学习下载频道.txt"资源,你将得到...
#### 三、第一章:Java 初体验 - **你的第一个 Java 程序:** - 介绍如何编写并运行一个简单的 Java 应用程序。 - 解释了 `public class` 和 `main` 方法的重要性。 - **Java 代码规范:** - 强调了代码格式的...
首先,Java是由詹姆斯·高斯林在Sun公司领导下开发的一种编程语言,被誉为"Java之父"的高斯林在1990年代初提出了Java的最初设计。Java的名字来源于印度尼西亚的一个咖啡岛屿,象征着带给用户如咖啡般的愉悦体验。 ...
1. **Java基础知识**:这个项目主要基于Java语言,涉及到Java面向对象编程的基本概念,如类、对象、封装、继承和多态。同时,可能会用到Java集合框架(如ArrayList或HashMap)来存储和操作数据。 2. **数据库设计**...
在学习Java之初,首先要掌握基础语法,包括变量、数据类型、运算符、流程控制(如if语句、switch、for、while循环)、方法定义与调用,以及面向对象的基本概念。这些构成了Java程序设计的基础,是后续深入学习的前提...
总之,这本Java案例开发集锦是提升Java技能的理想选择,无论你是初入编程的新手,还是寻求进阶的开发者,都能从中受益匪浅。通过实践案例,你将学会如何将Java语言应用于实际问题,成为一名更出色的Java开发者。
MSN在20世纪90年代末到21世纪初是全球广泛使用的即时通讯工具,而这个项目则尝试复刻其核心功能,为用户带来类似体验。 【描述】:“基于Java的模仿的MSN聊天软件.zip”描述了这个项目的主要技术栈——Java。Java是...
Java作为一种强大的面向对象编程语言,它在设计之初就吸收了C++语言的优点,并且摒弃了一些难以理解和容易出错的功能,例如多继承和指针操作。这些设计决策使得Java既具备了强大的功能又相对简单易学。 1. **面向...