27.Java基础_多态
父类对象引用子类对象: Animal a=new Cat();



多态中的转型

public class Animal {
public void eat(){
System.out.println("动物吃东西");
}
}
public class Cat extends Animal{
@Override
public void eat() {
System.out.println("猫吃鱼");
}
public void playGame(){
System.out.println("猫捉迷藏");
}
}
public class test {
public static void main(String[] args) {
//多态
Animal a=new Cat(); //向上转型
a.eat(); //猫吃鱼
//a.playGame(); 会报错
//创建Cat类的对象
Cat b=(Cat)a; //向下转型,来解决多态不能使用子类特有功能的问题
b.eat(); //猫吃鱼
b.playGame(); //猫捉迷藏
}
}
多态转型内存图
1.进入main函数,创建a对象

2.执行eat函数(子类)

3.创建Cat类型变量c将原本堆空间的对象地址赋给它.

4.类型转换异常

27.Java基础_多态的更多相关文章
- Java基础十一--多态
Java基础十一--多态 一.多态定义 简单说:就是一个对象对应着不同类型. 多态在代码中的体现: 父类或者接口的引用指向其子类的对象. /* 对象的多态性. class 动物 {} class 猫 ...
- Java基础之多态和泛型浅析
Java基础之多态和泛型浅析 一.前言: 楼主看了许多资料后,算是对多态和泛型有了一些浅显的理解,这里做一简单总结 二.什么是多态? 多态(Polymorphism)按字面的意思就是“多种状态”.在面 ...
- 【Java基础】多态
首先先来个总结: 什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对象对同一消 ...
- java基础之 多态
在面向对象编程(Object-Oriented Programming, OOP)中,多态机制无疑是其最具特色的功能,甚至可以说,不运用多态的编程不能称之为OOP.这也是为什么有人说,使用面向对象语言 ...
- 黑马程序员——JAVA基础之多态与Object
------- android培训.java培训.期待与您交流! ---------- 多态 : 多态定义: 某一类事物的多种存在形态. 多态的体现: 父类的引用指向了自己的子类对象. ...
- Java基础:多态(重载和重写)
转载请注明出处:jiq•钦's technical Blog (1)域与静态方法 记住"仅仅有普通方法的调用是多态的". 而域和静态方法不是:对于域的訪问.在编译期间就已经进行解析 ...
- java基础14 多态(及关键字:instanceof)
面向对象的三大特征: 1.封装 (将一类属性封装起来,并提供set()和get()方法给其他对象设置和获取值.或者是将一个运算方法封装起来,其他对象需要此种做运算时,给此对象调用) 2.继承 ...
- java基础(多态)_03
一.多态 1.概念:一个对象的多种形态 2.前提: a:必须有继承 b:必须有重写(只有重写才会有意义,没重写语法没错) 3.体现形式: 父类类型 变量名 = new 子类类型(): 4.注意事项: ...
- 31.Java基础_日期/日期格式/日历类
Date类 Date对象构造方法 Date对象常用方法 import java.util.*; public class test { public static void main(String[] ...
随机推荐
- SQL Server通过函数把逗号分隔的字符串拆分成数据列表的脚本-干货
CREATE FUNCTION [dbo].[Split](@separator VARCHAR(64)=',',@string NVARCHAR(MAX)) RETURNS @ResultTab ...
- Linux 定位进程对应的文件路径
ls -al /proc/[pid]/exe # 例如: [root@localhost ~]# ls -al /proc/9109/exe lrwxrwxrwx. 1 ibaboss ibaboss ...
- 8. Vue - Router
一.Vue Router 的使用 JavaScript: 1.创建组件:创建单页面应用需要渲染的组件 2.创建路由:创建VueRouter实例 3.映射路由:调用VueRouter实例的map方法 4 ...
- 洛谷 P5639 【CSGRound2】守序者的尊严
洛谷 P5639 [CSGRound2]守序者的尊严 洛谷传送门 题目背景 由于Y校最近进行了对学校食堂的全面改革与对小卖部的全面整治(乱搞),导致学校小卖部卖的零食被禁售了:学校食堂的炸鸡窗口也消失 ...
- 转载:如何严格限制session在30分钟后过期!
如何严格限制session在30分钟后过期!1.设置客户端cookie的lifetime为30分钟:2.设置session的最大存活周期也为30分钟:3.为每个session值加入时间戳,然后在程序调 ...
- 在wcharczuk/go-chart图表上打印文字
先看效果: 源码 package main import ( "bytes" "fmt" "io/ioutil" & ...
- jquery 全选样例
代码: $(function(){ $("#checkAllOld").click(function() { $("input[id^='box_old_']" ...
- 2018-8-10-win10-uwp-退出程序
原文:2018-8-10-win10-uwp-退出程序 title author date CreateTime categories win10 uwp 退出程序 lindexi 2018-08-1 ...
- WCF全双工通信实例分享(wsDualHttpBinding、netTcpBinding两种实现方式)
最近在研究WCF通信,如果没有接触过的可以看我的前一篇文章:https://www.cnblogs.com/xiaomengshan/p/11159266.html 主要讲的最基础的basicHttp ...
- Python 最强 IDE 详细使用指南!-PyCharm
PyCharm 是一种 Python IDE,可以帮助程序员节约时间,提高生产效率.那么具体如何使用呢?本文从 PyCharm 安装到插件.外部工具.专业版功能等进行了一一介绍,希望能够帮助到大家. ...