
08-01 Java语言基础(多态)
继承关系:子类必须继承父类才能实现多态。例如, 方法重写:子类对父类的方法进行重写(override),这意味着在运行时会调用子类的具体实现。 父类引用指向子类对象:使用父类引用(如
发布日期:2021-05-06 23:59:21
浏览次数:28
分类:精选文章
本文共 1618 字,大约阅读时间需要 5 分钟。
多态是面向对象编程中一个核心概念,它描述了事物在不同情境下可以表现出不同的形态。简单来说,多态就像人类的适应能力,不同的环境下我们会有不同的表现。
多态的前提
多态的实现需要以下几个关键条件:
Cat
类必须继承Animal
类。Animal a = new Cat()
),在运行时会调用子类的方法。代码实现
以下是一个实现多态的简单例子:
public class Test11 { public static void main(String[] args) { Animal a = new Cat(); // 父类引用指向子类对象 System.out.println(a.num); // 编译看左边(父类),运行看左边(父类) a.eat(); // 编译看左边(父类),运行看右边(子类) }}class Animal { int num = 10; // 父类属性,所有子类都会继承 public void eat() { // 父类方法 System.out.println("动物吃饭"); }}class Cat extends Animal { int num = 20; // 子类属性,覆盖父类属性 @Override public void eat() { // 方法重写,编译看父类,运行看子类 System.out.println("猫吃鱼"); }}
成员变量和成员方法
成员变量:
- 编译时看左边(父类),如果父类没有这个变量,编译会报错。
- 运行时看左边(父类),如果子类没有重写这个变量,会使用父类的值。
成员方法:
- 编译时看左边(父类),如果父类没有这个方法,编译会报错。
- 运行时看右边(子类),如果子类重写了这个方法,会调用子类的方法。
案例:超人的故事
public class Demo3_SuperMan { public static void main(String[] args) { Person P = new SuperMan(); P.business(); // 调用子类的方法 System.out.println(P.name); // 输出子类的属性 }}class Person { String name = "John"; // 父类属性 public void business() { // 父类方法 System.out.println("谈生意"); }}class SuperMan extends Person { String name = "superMan"; // 子类属性,覆盖父类属性 public void business() { // 方法重写,输出子类特定的内容 System.out.println("谈几十个亿的大单子"); } public void fly() { // 新添加的方法 System.out.println("I believe I can fly"); }}
这个案例展示了多态的实际应用。SuperMan
类继承了Person
类,并对business
方法进行了重写,表现出不同于普通人的业务能力。此外,SuperMan
类还引入了一个新的方法fly()
,展示了超人的特殊能力。
发表评论
最新留言
很好
[***.229.124.182]2025年04月13日 10时13分11秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
技巧收藏|10个JavaScript常用数组操作方法
2019-03-06
两种端到端通用目标检测方法
2019-03-06
探索语言交互技术在政务数字化的应用
2019-03-06
让 AI “潜入”物流中心,你的快递很快就到!
2019-03-06
云小课 | 守护网络安全不是问题,iptables的四表五链为你开启“八卦阵”
2019-03-06
LiteOS内核源码分析:任务栈信息
2019-03-06
23种设计模式之迭代器模式
2019-03-06
23种设计模式之组合模式
2019-03-06
mysql zip安装
2019-03-06
mysql修改密码
2019-03-06
virtualbox中 Kali Linux安装增强功能
2019-03-06
virtualbox中 Ubuntu挂载共享文件夹
2019-03-06
Python 内置函数笔记
2019-03-06
BootStrapTable 错误
2019-03-06
PHP 中的Trait
2019-03-06
PHP 配置文件
2019-03-06
PHP 脚本不报错
2019-03-06
代码整洁之道小结
2019-03-06
悲观锁与乐观锁
2019-03-06
补码到底是个什么东西
2019-03-06