【Java】多态

简介: 【Java】多态

多态概述:

同一个对象,在不同时刻表现出来的不同状态

 

举例:猫

我们可以说猫是猫:猫 cat = new 猫();

我们也可以说猫是动物:动物 animal = new 猫();

这里猫在不同的时刻表现出来了不同的形态,这就是多态

 

多态的前提和体现:

  • 有继承/实现关系
  • 有方法重写
  • 有父类引用指向子类对象

 

多态中成员访问的特点:

成员变量:编译看左边,执行看右边

成员方法:编译看左边,执行看右边

 

为什么成员变量和成员方法的访问不一样呢?

  • 因为成员方法有重写,而成员变量没有

 

多态的好处和弊端

  • 好处:提高了程序的扩展性

       具体体现:定义方法的时候,使用父亲型作为参数,将来在使用的时候,使用具体的子类型参与操作

  • 弊端:不能使用子类的特有功能

多态中的转型

向上转型

   从子到父

   父类引用指向子类对象

向下转型

  从父到子

   父类引用转为子类对象

   解决了多态的弊端——不能访问子类的特有功能

目录
相关文章
|
30天前
|
Java
Java中的继承和多态是什么?请举例说明。
Java中,继承让子类继承父类属性和方法,如`class Child extends Parent`,子类可重写父类方法。多态允许父类引用指向子类对象,如`Animal a = new Dog()`,调用`a.makeSound()`会根据实际对象类型动态绑定相应实现,增强了代码灵活性和可扩展性。
18 0
|
30天前
|
设计模式 Java
Java基础—笔记—多态、final、抽象类、接口篇
该文介绍了编程中的多态、final和抽象类、接口相关概念。多态允许子类重写父类方法,通过父类引用调用子类方法,实现解耦和提高代码灵活性,但也可能导致无法使用子类特有功能,需通过强制类型转换解决。final用于修饰不可变的类、方法或变量,防止继承、重写和多次赋值。抽象类是一种包含抽象方法的类,用于强制子类重写特定方法,实现多态,适用于模板方法设计模式,解决代码重复问题。
25 0
|
30天前
|
搜索推荐 Java
Java的面向对象特性主要包括封装、继承和多态
【4月更文挑战第5天】Java的面向对象特性主要包括封装、继承和多态
21 3
|
30天前
|
Java
【Java】一个简单的接口例子(帮助理解接口+多态)
【Java】一个简单的接口例子(帮助理解接口+多态)
25 0
|
30天前
|
Java 编译器
【Java开发指南 | 第二十六篇】Java多态
【Java开发指南 | 第二十六篇】Java多态
19 1
|
1天前
|
Java 编译器 开发者
Java基础3-JVM层面理解Java继承、封装、多态的实现原理(二)
Java基础3-JVM层面理解Java继承、封装、多态的实现原理(二)
5 0
|
1天前
|
存储 Java 索引
Java基础3-JVM层面理解Java继承、封装、多态的实现原理(一)
Java基础3-JVM层面理解Java继承、封装、多态的实现原理(一)
9 0
|
10天前
|
Java
21. 【Java教程】多态
21. 【Java教程】多态
8 0
|
14天前
|
Java 数据安全/隐私保护
Java的封装、继承与多态技术性文章
Java的封装、继承与多态技术性文章
18 1
|
17天前
|
安全 Java 编译器
Java面向对象之——多态
Java面向对象之——多态