- 浏览: 16577 次
最新评论
1.看代码:
输出结果:
cat doing
dog doing
从上可以看到,在Dog与Cat类中重写Animal中的animalDo方法,通过调用animalDo方法,
会自动根据不同的实例调用不同类中的方法(多态知识)
2.在没有继承关系的类中,我们可以通过instanceof来判断当前实例,然后根据不同实例调用不同方法:
还是之前的Cat、Dog(不同的是两个model都没有实现Animal接口)
在这里我们通过instanceof 判断结果,执行不同类中的相应动作方法,输出结果同上
public interface Animal { void animalDo(); } public class Cat implements Animal { @Override public void animalDo() { System.out.println("cat doing"); } } public class Dog implements Animal { @Override public void animalDo() { System.out.println("dog doing"); } } public class TestAnimal { public static void main(String[] args) { Animal cat = new Cat(); Animal dog = new Dog(); List<Animal> list = new ArrayList<Animal>(); list.add(cat); list.add(dog); Iterator<Animal> it = list.iterator(); while(it.hasNext()){ it.next().animalDo(); } } }
引用
输出结果:
cat doing
dog doing
从上可以看到,在Dog与Cat类中重写Animal中的animalDo方法,通过调用animalDo方法,
会自动根据不同的实例调用不同类中的方法(多态知识)
2.在没有继承关系的类中,我们可以通过instanceof来判断当前实例,然后根据不同实例调用不同方法:
public class TestAnimal { public static void main(String[] args) { Cat cat = new Cat(); Dog dog = new Dog(); List list = new ArrayList(); list.add(cat); list.add(dog); Iterator it = list.iterator(); while(it.hasNext()){ Object o = it.next(); if(o instanceof Cat){ Cat c = (Cat)o; c.animalDo(); }else if(o instanceof Dog){ Dog d = (Dog)o; d.animalDo(); } } } }
还是之前的Cat、Dog(不同的是两个model都没有实现Animal接口)
在这里我们通过instanceof 判断结果,执行不同类中的相应动作方法,输出结果同上
发表评论
-
JavaWeb 之 session
2017-10-12 15:06 0一、Session ... -
git clone命令
2017-10-10 15:30 1091git clone 命令参数: usage: gi ... -
Mac下idea快捷键
2017-10-09 17:21 391IntelliJ IDEA For Mac 快捷 ... -
浅谈java中的堆栈(二)
2016-12-16 17:50 0Java 中的堆和栈 Java把内存划分成两种:一种是 ... -
浅谈java中的堆栈(一)
2016-12-16 17:28 303Java把内存分成两种,一种叫做堆内存,一种叫做栈内存:在 ... -
导出excel的两种方式(二)
2015-12-17 15:26 7791.调用类如下: @RequestMapping(&quo ... -
导出excel的两种方式(一)
2015-12-17 15:10 6701.导出excel方法调用: import org.apa ... -
正确选择使用字符串或者数字
2015-12-08 10:53 433在我多年的开发经验中,经常发现的一个情况就是,很多项目的对象 ... -
mybatis在xml文件中处理大于号小于号的方法
2015-06-11 17:30 392第一种方法: 用了转义字符把>和<替换掉,然 ... -
Java中serialVersionUID
2015-06-11 17:31 467serialVersionUID作用: ... -
为什么使用redis
2015-06-11 17:41 467先解释一下软件编程中常见的一些概念: 抽象先于具象。这个抽象 ... -
mybatis入门三之使用MyBatis Generator生成DAO
2015-06-10 18:06 865虽然MyBatis很方便,但是想要手写全部的mapper还是很 ... -
mybatis入门二之添加ehcache缓存支持
2015-06-10 17:57 509为了提高MyBatis的性能, ... -
mybatis入门一
2015-06-10 17:53 323ibatis的3.X版本改名了,叫做MyBatis,暂且不讨论 ... -
spring+mybatis优缺点
2015-06-10 16:43 1610一、mybatis的优缺点: ... -
struts1与struts2
2015-06-10 15:39 3631.struts2不是struts1的升级,而是继承的webw ... -
Java语言滴transient
2015-03-26 21:48 483transient说明一个属性是临时的,不会被序列化。详看事例 ... -
Java语言滴Interface
2015-03-26 18:32 4211.相对abstract class(抽象类)来讲,inter ...
相关推荐
从提供的文件信息来看,该文件名为《Java语言程序设计.pdf》,主要涉及Java语言程序设计的相关知识。以下是从文件【部分内容】中提取并解释的知识点: 1. Java语言程序设计的基本概念:Java是一种面向对象的编程...
在Java编程语言中,接口(Interface)是一种定义行为规范的关键元素,它允许我们实现多继承。接口是完全抽象的,不包含任何方法的实现,只有方法的声明、常量定义以及默认方法。Java中的接口提供了以下核心知识点: ...
### JNI(Java Native Interface)中文手册关键知识点解析 #### 一、前言及背景 JNI(Java Native Interface)是Sun Microsystems公司定义的一套标准接口,用于实现Java代码与本地代码(通常是C或C++)之间的交互。...
JNI(java native interface) 简体中文:do.chuan@gmail.com 翻译版 英文版:Addison.Wesley.Java.Native Interface 希望对大家有帮助...
二、JAVA语言基础 1. 变量与数据类型:JAVA支持基本数据类型(如int、char、float等)和引用数据类型(类、接口、数组)。变量是存储数据的容器,而数据类型决定了变量可以存储的数据种类。 2. 控制结构:包括条件...
Java Native Interface(JNI)是Java平台的一个重要组成部分,它允许Java代码和其他语言写的代码进行交互。这个"Java Native Interface Programmers Guide and Specification(Exp)"很可能是一份详细解释JNI编程指南...
Java Native Interface(JNI)是Java开发中的一个重要概念,它允许Java代码与其他语言编写的代码进行交互,尤其是与C或C++编写的本地应用程序接口(API)进行交互。JNI在Java应用程序中扮演着桥梁的角色,使得Java...
THIS book covers the Java™ Native Interface (JNI). It will be useful to you if you are interested in any of the following: • integrating a Java application with legacy code written in languages such...
但这并不代表Java的interface就比较差,因为interface的观念较简单,全部动态的抽象函数也正代表着Java为一纯物件导向语言。与C++不同的是,C++考虑许多执行效率的问题,所以语言本身就变的较复杂化,同时C++的...
《JAVA语言中文教程》是一份详尽的编程学习资料,主要介绍了JAVA语言的基础知识与面向对象的编程概念,适合初学者以及有一定编程基础的学习者深入理解JAVA语言的特性和编程技巧。 ### 第一章:JAVA概述 #### JAVA...
"java语言基本语法" Java语言基本语法是Java编程语言的基础,包括关键字、数据类型、运算符、控制结构、方法、异常处理等方面。下面是Java语言基本语法的知识点: 关键字 Java语言中有一些关键字,它们是Java...
在Java编程语言中,接口(Interface)是一种非常重要的特性,它扮演着定义行为规范的关键角色。接口是完全抽象的类型,允许我们定义一组方法签名,但不提供具体实现。这使得接口成为实现多继承的手段,因为Java不...
以及JNI(Java Native Interface),用于在Java代码中调用C/C++的库函数,实现Java与其他语言的交互。 总的来说,《Java语言程序设计》第8版是一本全面而深入的教程,无论你是Java新手还是有经验的开发者,都能从中...
第二章会讲解Java环境的搭建,包括安装Java Development Kit (JDK)、配置环境变量,以及设置开发工具,如Integrated Development Environment (IDE)如Eclipse或IntelliJ IDEA,为后续的编程实践打下基础。...
Java Native Interface (JNI) 是Java平台的一项强大特性,允许应用程序结合使用C、C++等其他编程语言编写的本地代码以及Java语言代码。这一功能让程序员能够在利用Java平台优势的同时,不必舍弃对遗留代码的投资。...