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. Fabric区块链浏览器(3)

    本文是区块链浏览器系列的第五篇,项目完整代码在这里. 在上一篇文章中给浏览器增加了简单的用户认证,至此浏览器的基本功能就已经大致完成了. 在这片文章中,我将使用kratos对区块链浏览器器进行重构,使 ...

  2. 紧跟潮流,抓住趋势,跟上全民AI的节奏,开源IM项目OpenIM产品介绍,为AIGC贡献力量

    开源价值 高度自主.安全可控.开放自由,私有化部署,一切皆可控 透明度和可信度:开源软件的源代码是公开的,任何人都可以查看和检查代码,从而增强了软件的透明度和可信度.用户可以了解软件的内部结构和运作方 ...

  3. ABP .net Core 将日志打印在控制台

    上效果图 来看一下操作流程: 一.分为.net Core 2.2 和 .net Core 3.0及以上 (一)..net Core 2.2 1.在 EntityFrameworkCore中安装Nuge ...

  4. arch linux 安装

    好长时间都没有更新自己的博客了,我简单翻阅了一下自己的更新记录,上一次更新好像还是在5月份左右,距今也有快半年,这半年也是遇到了很多事情,有不好的,也有好的.这半年我对在日常生活工作中使用Linux系 ...

  5. NLP文本匹配任务Text Matching [无监督训练]:SimCSE、ESimCSE、DiffCSE 项目实践

    NLP文本匹配任务Text Matching [无监督训练]:SimCSE.ESimCSE.DiffCSE 项目实践 文本匹配多用于计算两个文本之间的相似度,该示例会基于 ESimCSE 实现一个无监 ...

  6. 【四】超级快速pytorch安装,三步走,分分钟完成!

    相关文章: [一]tensorflow安装.常用python镜像源.tensorflow 深度学习强化学习教学 [二]tensorflow调试报错.tensorflow 深度学习强化学习教学 [三]t ...

  7. 14.7 Socket 循环结构体传输

    在上述内容中笔者通过一个简单的案例给大家介绍了在套接字编程中如何传递结构体数据,本章将继续延申结构体传输,在某些时候例如我们需要传输一些当前系统的进程列表信息,或者是当前主机中的目录文件,此时就需要使 ...

  8. [XXL-JOB] 分布式调度XXL-JOB快速上手

    1.概述 1.1什么是任务调度 我们可以思考一下下面业务场景的解决方案: 某电商平台需要每天上午10点,下午3点,晚上8点发放一批优惠券 某银行系统需要在信用卡到期还款日的前三天进行短信提醒 某财务系 ...

  9. ESP8266的AT指令模块程序

    最新代码可点击下载:ESP8266 模块代码 和以下代码实现方式不一致,更加自由可控 本段代码只是测试了esp8266作为服务器端使用,没有测试作为客户端使用. 没有超长延时等待或死循环等待AT指令反 ...

  10. ASP.NET Core分布式项目实战(oauth2与open id connect 对比)--学习笔记

    任务14:oauth2与open id connect 对比 以微博开放平台为例(微博登录接入--授权机制): https://open.weibo.com/wiki/授权机制 可以看到微博登录接入使 ...