Java多态自我理解

简介: Java多态自我理解

Java多态有多种表现形式


  1. 普通类的多态
  2. 抽象类的多态
  3. 接口的多态


但是必须要存在继承关系

有自上而下转型或者自下而上转型,而自下而上转型是自动的

比如我们创建一个父亲类然后两个子类,一个儿子类一个女儿类,儿子类和女儿类同时继承的父类的eat方法,而儿子类存在自己单独的跑步方法。


package ManyT;
public class Test {
    public static void main(String[] args) {
        Father father = new Son();
        Father father1 = new Daughter();
        Son son =(Son) new Father();
        father.eat();
        father1.eat();
        son.run();
    }
}
class Father {
    void eat(){
        System.out.println("父亲吃肉");
    }
}
class Son extends Father{
    @Override
    void eat() {
        System.out.println("儿子吃白菜");
    }
    void run(){
        System.out.println("儿子再跑");
    }
}
class Daughter extends Father{
    @Override
    void eat() {
        System.out.println("女儿吃萝卜");
    }
}


自下向上转型


首先定义方法为

父类类型 [父类变量名] = new 子类类型();

此时这个父类变量名字可以调用子类的方法。

注意:如果父类中的方法是静态的(static),子类中的同名方法也是静态的(static),多态调用的依然是父类的成员方法。原因:静态属于类,不属于对象;多态性是针对对象而言的,和静态无关。所以用父类的引用 调用静态方法必然是执行父类的方法。)

Father father = new Son();
father.eat();


此时输出儿子在吃


自上向下转型


定义方法为

子类类型 [子类变量名] = (子类类型) new 父类类型();

此时可以调用该子类单独的方法

Son son = (Son) new Father();
son.run();


此时调用son独有的方法输出儿子在跑。


目录
打赏
0
0
0
0
0
分享
相关文章
java中重载和多态的区别
本文详细解析了面向对象编程中多态与重载的概念及其关系。多态是OOP的核心,分为编译时多态(静态多态)和运行时多态(动态多态)。编译时多态主要通过方法重载和运算符重载实现,如Java中的同名方法因参数不同而区分;运行时多态则依赖继承和方法重写,通过父类引用调用子类方法实现。重载是多态的一种形式,专注于方法签名的多样性,提升代码可读性。两者结合增强了程序灵活性与扩展性,帮助开发者更好地实现代码复用。
39 0
|
3月前
|
Java 面向对象编程的三大法宝:封装、继承与多态
本文介绍了Java面向对象编程中的三大核心概念:封装、继承和多态。
272 15
在Java的编程世界里,多态不仅仅是一种代码层面的技术,它是思想的碰撞,是程序员对现实世界复杂性的抽象映射,是对软件设计哲学的深刻领悟。
在Java的编程世界里,多态不仅仅是一种代码层面的技术,它是思想的碰撞,是程序员对现实世界复杂性的抽象映射,是对软件设计哲学的深刻领悟。
112 9
|
8月前
|
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
64 7
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
67 5
让我们一起探讨Java多态的奥秘,看看它是如何打破“一刀切”的局限,让我们的代码更加生动多彩
让我们一起探讨Java多态的奥秘,看看它是如何打破“一刀切”的局限,让我们的代码更加生动多彩
64 5
Java中的继承和多态:理解面向对象编程的核心概念
【8月更文挑战第22天】在Java的世界中,继承和多态不仅仅是编程技巧,它们是构建可维护、可扩展软件架构的基石。通过本文,我们将深入探讨这两个概念,并揭示它们如何共同作用于面向对象编程(OOP)的实践之中。你将了解继承如何简化代码重用,以及多态如何为程序提供灵活性和扩展性。让我们启程,探索Java语言中这些强大特性的秘密。
Java零基础-多态详解
【10月更文挑战第10天】Java零基础教学篇,手把手实践教学!
104 4
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
Java多态背后的秘密:动态绑定如何工作?
本文介绍了Java中多态的实现原理,通过动态绑定和虚拟方法表,使得父类引用可以调用子类的方法,增强了代码的灵活性和可维护性。文中通过具体示例详细解析了多态的工作机制。
120 4