1 package com.bytezreo.duotai;
2 /**
3 *
4 * @Description 面向对象的特征三 ------多态性
5 * @author Bytezero·zhenglei! Email:420498246@qq.com
6 * @version
7 * @date 2021年9月20日下午4:56:10
8 * @
9 *
10 *
11 * 1.理解多态性: 可以理解为一个事物的多态性
12 * 2.何为多态性: 父类的引用指向子类的对象(或子类的对象赋给父类的引用)
13 *
14 * 3.多态的使用:虚拟方法调用
15 * 有了对象的多态性的以后,我们在编译器期,只能调用父类中声明的方法,但是
16 * 在运行期,我们实际执行的是 子类重写父类的方法。
17 *
18 * 总结:编译,看左边,执行看右边
19 *
20 * 4.多态性的使用前提:(1)类的继承关系 (2) 要有方法的重写
21 *
22 * 5.对象的多态性,适用于方法,不适用于属性(属性:编译和运行都只看左边)
23 *
24 * 6.多态性是运行时行为;
25 *
26 * 7.动态绑定
27 */
28 public class PersonTest
29 {
30 public static void main(String[] args)
31 {
32 Person p1 = new Person();
33 p1.eat();
34
35
36 Man man = new Man();
37 man.eat();
38 man.age = 25;
39 man.makeMoney();
40
41 /***********************/
42 System.out.println("----------------------------");
43 //对象多态性:父类的引用指向子类的对象
44 Person p2 = new Man();
45
46 //多态的使用:当调用子父类同名同参的方法时,实际执行的是子类重写父类的
47 //方法---虚拟方法调用
48 p2.eat(); //子类的
49 p2.walk();
50
51
52 //p2.makeMoney();
53
54
55
56
57 // Person p3 = new Woman();
58
59 System.out.println(p2.id); //1001 父类
60
61
62 }
63 }
 1 package com.bytezreo.duotai;
2
3 public class Person
4 {
5 String name;
6 int age;
7
8 int id = 1001;
9
10 public void eat()
11 {
12 System.out.println("人,吃饭");
13 }
14 public void walk()
15 {
16 System.out.println("人,走路");
17 }
18
19
20
21
22
23 }
package com.bytezreo.duotai;

public class Man extends Person
{
boolean isSmoking; int id = 1002; public void makeMoney()
{
System.out.println("男人养家家");
} //重写
public void eat()
{
System.out.println("男人多吃吃饭");
}
public void walk()
{
System.out.println("男人霸气走路");
} }
 1 package com.bytezreo.duotai;
2
3 public class Woman extends Person
4 {
5 boolean isBeauty;
6
7 public void goShopping()
8 {
9 System.out.println("女人喜欢购物");
10 }
11
12 //重写
13 public void eat()
14 {
15 System.out.println("女人吃饭,减肥");
16 }
17 public void walk()
18 {
19 System.out.println("女人窈窕的走路");
20 }
21
22 }

Java 多态 解释+案例的更多相关文章

  1. Java 多态 ——一个案例 彻底搞懂它

    最近,发现基础真的hin重要.比如,Java中多态的特性,在学习中就是很难懂,比较抽象的概念.学的时候就犯糊涂,但日后会发现,基础在日常工作的理解中占有重要的角色. 下面,我将用一个代码实例,回忆和巩 ...

  2. JAVA之旅(八)——多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例

    JAVA之旅(八)--多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例 学习是不能停止的 一.多态 我们今天又要学习一个新的概念了,就是多态,它是面向对象的第 ...

  3. Java多态面试题案例几解题思路

    ---恢复内容开始--- Java多态面试题案例几解题思路 这道题是来自别人,先开始看到题很懵,后来有自己的思路: class A { public String show(D obj){ retur ...

  4. 深入理解Java多态机制

    从字节码层面来看,Java中的所有方法调用,最终无外乎转换为如下几条调用指令. invokestatic: 调用静态方法. invokespecial: 调用实例构造器<init>方法,私 ...

  5. 从JVM角度看Java多态

    首先,明确一下,Java多态的三个必要条件: 1. 继承 2. 子类重写父类方法 3. 父类引用指向子类对象 然后看一个例子 package test.xing; class Father{ prot ...

  6. Java经验杂谈(2.对Java多态的理解)

    多态是面向对象的重要特性之一,我试着用最简单的方式解释Java多态: 要正确理解多态,我们需要明确如下概念:・定义类型和实际类型・重载和重写・编译和运行 其中实际类型为new关键字后面的类型. 重载发 ...

  7. Java多态之动态绑定

    目录 Java多态之动态绑定 引用变量的类型 编译时类型 运行时类型 方法绑定 静态绑定 动态绑定 方法表 Java多态之动态绑定 上篇回顾:多态是面向对象程序设计非常重要的特性,它让程序拥有 更好的 ...

  8. Java 多态——与C++的比较

    学习了Java和C++之后,由于长期不使用C++,而java的基础知识掌握不牢,现在已经搞不清java多态了.现在先来谈谈java多态,稍后有时间再更新C++的多态,并进行比较~ 一. Java的多态 ...

  9. C++和java多态的区别

    C++和java多态的区别 分类: Java2015-06-04 21:38 2人阅读 评论(0) 收藏 举报  转载自:http://www.cnblogs.com/plmnko/archive ...

  10. Java 多态 父类和子类方法的访问控制权限

    Java 多态 父类和子类方法的访问控制权限 @author ixenos 父类和子类方法的访问控制权限 继承是为了扩展类的功能,而这种扩展显然就是对一个原始类的扩展,目的还是向上转型来调用,所以这就 ...

随机推荐

  1. Abp 模板更换数据库 版本为V5.x,遇到的问题

    数据库的选择: Mysql使用5.0.0的版本,根据在下面的依赖项 大于等于5.0.5 && 小于6.0.0 Microsoft.EntityFrameworkCore.Tools和M ...

  2. 搭建mongo的replica set

    搭建mongo的replica set 前言 安装 构建副本集 加入认证 备份数据 备份数据到本地 数据恢复 搭建mongo的replica set 前言 准备三台机器,相互可以访问的.处理思路,先构 ...

  3. 关于飞桨UIE等模型预测推理时间很久的问题分析以及解决,蒸馏剪枝部署问题解决

    1.关于飞桨UIE等模型预测推理时间很久的问题分析以及解决 1.1.原因分析 用uie做实体识别,Taskflow预测的时间与schema内的实体类别数量成正比,schema里面有多少个实体类别 实体 ...

  4. 4.8 x64dbg 学会扫描应用堆栈

    堆栈是计算机中的两种重要数据结构 堆(Heap)和栈(Stack)它们在计算机程序中起着关键作用,在内存中堆区(用于动态内存分配)和栈区(用于存储函数调用.局部变量等临时数据),进程在运行时会使用堆栈 ...

  5. MySQL 之单表查询(精简笔记)

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RD ...

  6. CF765F Souvenirs 题解

    题目链接:CF 或者 洛谷 想了很久,然后想起做过的一道题:秃子酋长,一开始以为差不多,结果写着写着就发现不对劲了.最后写出了个神仙回滚莫队解法,感觉很妙,记录下. 进入神仙分析时刻 首先,我们来考虑 ...

  7. electron、nodejs、typescript、idea 组合开发,安装和配置 以及错误 等 详细说明

    1.  创建项目,创建时 选择 nodejs 项目,因为 开发 electron 与 开发 nodejs 基本一致. 2.安装 electron  npm i -D electron@beta 看目录 ...

  8. ASP.NET Core分布式项目实战(oauth2 + oidc 实现 server部分)--学习笔记

    任务15:oauth2 + oidc 实现 server部分 基于之前快速入门的项目(MvcCookieAuthSample): https://www.cnblogs.com/MingsonZhen ...

  9. 《ASP.NET Core 微服务实战》-- 读书笔记(第8章)

    第 8 章 服务发现 面对大量服务,为了简化配置和管理工作,我们需要了解"服务发现"概念 回顾云原生特性 配置外置 将 URL 和登录凭证移到配置文件和 C# 代码之外,放到环境变 ...

  10. Python实现冒泡排序、选择排序、插入排序

    排序与搜索 排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法. 排序算法的稳定性 稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序.也就是如 ...