Java 多态 解释+案例
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 多态 解释+案例的更多相关文章
- Java 多态 ——一个案例 彻底搞懂它
最近,发现基础真的hin重要.比如,Java中多态的特性,在学习中就是很难懂,比较抽象的概念.学的时候就犯糊涂,但日后会发现,基础在日常工作的理解中占有重要的角色. 下面,我将用一个代码实例,回忆和巩 ...
- JAVA之旅(八)——多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例
JAVA之旅(八)--多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例 学习是不能停止的 一.多态 我们今天又要学习一个新的概念了,就是多态,它是面向对象的第 ...
- Java多态面试题案例几解题思路
---恢复内容开始--- Java多态面试题案例几解题思路 这道题是来自别人,先开始看到题很懵,后来有自己的思路: class A { public String show(D obj){ retur ...
- 深入理解Java多态机制
从字节码层面来看,Java中的所有方法调用,最终无外乎转换为如下几条调用指令. invokestatic: 调用静态方法. invokespecial: 调用实例构造器<init>方法,私 ...
- 从JVM角度看Java多态
首先,明确一下,Java多态的三个必要条件: 1. 继承 2. 子类重写父类方法 3. 父类引用指向子类对象 然后看一个例子 package test.xing; class Father{ prot ...
- Java经验杂谈(2.对Java多态的理解)
多态是面向对象的重要特性之一,我试着用最简单的方式解释Java多态: 要正确理解多态,我们需要明确如下概念:・定义类型和实际类型・重载和重写・编译和运行 其中实际类型为new关键字后面的类型. 重载发 ...
- Java多态之动态绑定
目录 Java多态之动态绑定 引用变量的类型 编译时类型 运行时类型 方法绑定 静态绑定 动态绑定 方法表 Java多态之动态绑定 上篇回顾:多态是面向对象程序设计非常重要的特性,它让程序拥有 更好的 ...
- Java 多态——与C++的比较
学习了Java和C++之后,由于长期不使用C++,而java的基础知识掌握不牢,现在已经搞不清java多态了.现在先来谈谈java多态,稍后有时间再更新C++的多态,并进行比较~ 一. Java的多态 ...
- C++和java多态的区别
C++和java多态的区别 分类: Java2015-06-04 21:38 2人阅读 评论(0) 收藏 举报 转载自:http://www.cnblogs.com/plmnko/archive ...
- Java 多态 父类和子类方法的访问控制权限
Java 多态 父类和子类方法的访问控制权限 @author ixenos 父类和子类方法的访问控制权限 继承是为了扩展类的功能,而这种扩展显然就是对一个原始类的扩展,目的还是向上转型来调用,所以这就 ...
随机推荐
- elemntui-tab添加图标
<el-tabs :before-leave="moreState" v-model="activeName" @tab-click="hand ...
- 【发现一个问题】VictoriaMetrics中,突然某个时间段新增的data point无法查询出来
写了一个很简单的python程序,使用remote write协议发数据到vm-insert. 可是有个时段突然查询不出来数据了. 百思不得其解. 吃完中午饭,刷新页面又出来了. 还不清楚问题出现在哪 ...
- kettle(docker版)系列文章01---docker部署
1.准备好kettle的镜像文件放在指定目录解压 docker image load -i /home/pdi/jztwebspoon.tar 2.起容器 docker run -d -p 7777: ...
- C# 多线程与线程扫描器
多线程是一种复杂的编程技术,可以同时运行多个独立的线程来处理各种任务.在C#中,可以使用Thread类和ThreadPool类来实现多线程编程.Thread类用于创建和控制线程.可以使用Thread. ...
- vue下载本地文件 下载二进制流文件 兼容ie
vue-cli2要下载的静态文件放在static目录下,vue-cli3则放在public目录下 ie不支持 h5 的download写法,故用以下写法 <el-button type=&quo ...
- .NET Core开发实战(第6课:作用域与对象释放行为)--学习笔记(下)
06 | 作用域与对象释放行为 接下来,把服务切换为单例模式,通过工厂的方式 services.AddSingleton<IOrderService>(p => new Dispos ...
- MYSQL-另一种行转列的实现方式
行转列的实现方式:使用mysql.help_topic --行转列 SELECT b.help_topic_id, substring_index( a.levels, ',', b.help_top ...
- [Ngbatis源码学习][Spring] Spring 的资源管理 ResourceLoader
在学习Ngbatis的源码时,看到了有关xml文件的加载,涉及到了资源的加载,对相关知识进行总结与整理. 1. 相关类 Resource AbstractResource ResourceLoader ...
- Centos8 单机配置 Zookeeper3.6.3 集群
安装 Zookeeper 3.6.3 前提 已经安装好 JDK8+. 如果使用JDK8, 版本需要在211以上. 下载, 解压 使用root用户 wget https://downloads.apac ...
- 将PL/SQL代码封装在灵巧的包中
将代码封装在灵巧的包中 http://www.oracle.com/technetwork/issue-archive/2013/13-jan/o13plsql-1872456.html 绝大多数基于 ...