这里我也就大概说一下他们的关系,

接口就是动物,然而每一个类就是一种动物

给猫有两个功能:叫和睡觉

狗:叫

在f方法里面可以把猫的功能实现

但不能实现狗的功能

在主方法里面有一个猫有一个狗

分别调用



这里一个类可以继承于多个接口下面

继承的多个接口用,分开

再举个例子就是

鳄鱼和蚂蚁都能爬,但是鳄鱼还能进水,而蚂蚁不行

鳄鱼可以继承陆地和水

而蚂蚁只能继承陆地


interface Animal{//接口
void show();
} class cat implements Animal{//猫是动物的一种,就继承在他下面
public void show() {
System.out.println("喵喵喵……");
} public void sleep() {
System.out.println("睡觉……");
}
} class dog implements Animal{//狗同上
public void show() {
System.out.println("汪汪汪……");
}
}
public class 多态 {
public static void main(String[] args) {
Animal a = new cat ();
a.show();
Animal b = new dog();
b.show();
f(a);
f(b);
}
public static void f(Animal animal) {
if(animal instanceof cat) {//Java自带方法看an是不是cat的子集
//如果不是cat的子集,就跳过,dog中没有睡觉一说
cat cat = (cat) animal;
cat.show();
cat.sleep();
}
else {
System.out.println("this animal is not a cat");
} }
}

Java中多态举例说明的更多相关文章

  1. 关于java中多态的理解

    java三大特性:封装,继承,多态. 多态是java的非常重要的一个特性: 那么问题来了:什么是多态呢? 定义:指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行 ...

  2. 深入Java核心 Java中多态的实现机制(1)

    在疯狂java中,多态是这样解释的: 多态:相同类型的变量,调用同一个方法时,呈现出多中不同的行为特征, 这就是多态. 加上下面的解释:(多态四小类:强制的,重载的,参数的和包含的) 同时, 还用人这 ...

  3. 个人对Java中多态的一些简单理解

    什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对象对同一消息做出响应.即同一 ...

  4. Java中多态的一些简单理解

    什么是多态 .面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. .多态的定义:指允许不同类的对象对同一消息做出响应.即 ...

  5. 从虚拟机指令执行的角度分析JAVA中多态的实现原理

    从虚拟机指令执行的角度分析JAVA中多态的实现原理 前几天突然被一个"家伙"问了几个问题,其中一个是:JAVA中的多态的实现原理是什么? 我一想,这肯定不是从语法的角度来阐释多态吧 ...

  6. Java 中多态的实现(下)

    Java 中多态的另一个语法实现是重写.重载是通过静态分派实现的,重写则是通过动态分派实现的. 在学习动态分派之前,需要对虚拟机的知识有一个初步的了解. 虚拟机运行时数据区 运行 Java 程序时,虚 ...

  7. Java 中多态的实现(上)

    Java 中语法上实现多态的方式分为两种:1. 重载.2. 重写,重载又称之为编译时的多态,重写则是运行时的多态. 那么底层究竟时如何实现多态的呢,通过阅读『深入理解 Java 虚拟机』这本书(后文所 ...

  8. Java中多态、抽象类和接口

    1:final关键字(掌握) (1)是最终的意思,可以修饰类,方法,变量. (2)特点: A:它修饰的类,不能被继承. B:它修饰的方法,不能被重写. C:它修饰的变量,是一个常量. (3)面试相关: ...

  9. Java中多态的理解

    最近学习Java里面的多态下面是个人的整理: 多态存在的3个必要条件: 1.要有继承 2.要有方法的重写 3.父类引用指向子类对象(对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将会 ...

随机推荐

  1. 《ES6标准入门》读书笔记 第5章 - 正则增强

    第五章 - 正则增强 构造函数增强 允许覆写修饰符,如new RegExp(someRegex, 'ig') 字符串上的正则方法 原先match.replace等可以调用正则的方法在String的原型 ...

  2. chmod指令用法

    指令名称 : chmod 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Unix 的档案 ...

  3. 线上Kafka突发rebalance异常,如何快速解决?

    文章首发于[陈树义的博客],点击跳转到原文<线上Kafka突发rebalance异常,如何快速解决?> Kafka 是我们最常用的消息队列,它那几万.甚至几十万的处理速度让我们为之欣喜若狂 ...

  4. ql的python学习之路-day7

    函数与函数式编程 一.编程模式分为三种: 1.面向对象编程:类----->关键字class 2.面向过程编程:过程----->关键字def,没有return 3.函数式编程:函数----- ...

  5. docker 部署jenkins

    1.拉取镜像 docker pull jenkins/jenkins 2.运行jenkins镜像作为容器 运行命令如下: docker run -d -p 9086:8080 -p 50000:500 ...

  6. Django认证系统之自带auth_user表操作

    Django自带auth_user表操作: views.py from django.contrib  import  auth#引入auth模块 from django.contrib.auth.m ...

  7. poj3249 拓扑找最长路

    Test for Job Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 11230   Accepted: 2651 Des ...

  8. 【Spring】Spring AOP详解(转载)

    一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnbl ...

  9. Java方法的定义以及调用、方法重载、可变参数以及递归

    目录 何谓方法 方法的定义及调用 方法的定义 方法调用 方法重载 命令行传参 可变参数 递归 何谓方法 Java方法是语句的集合,它们在一起执行一个功能 方法是解决一类问题的步骤的有序组合 方法包含于 ...

  10. ExtJS--grid表格前多选列

    为grid添加selModel属性: selModel:Ext.create('Ext.selection.CheckboxModel',{mode:"SIMPLE"}),//设置 ...