Java入门教程(30)——多态

简介: 多态的介绍及使用

多态指的是同一个方法调用,由于对象不同可能会有不同的行为。现实生活中,同一个方法,具体实现会完全不同。比如出行方式这个方法,有人选择步行,有人选择公交车,有人选择开车,有人选择自行车。

1.多态的要点:

  1. 多态是方法的多态,不是属性的多态。
  2. 多态的存在要有 3 个必要条件:继承,方法重写,父类引用指向子类对象。
  3. 父类引用指向子类对象后,用该父类引用调用子类重写的方法。

2.多态有啥好处

提高了程序的可扩展性和可维护性

3.实例



    public class Test {
        public static void main(String[] args) {
            //创建对象用于测试
            Transportation transportation = new Transportation();
            Car car = new Car();
            Bicycle bicycle = new Bicycle();
            transportation.goout();//出行~调用的是父类自己的功能
            car.goout();//开汽车跑~调用的是子类重写后的功能
            bicycle.goout();//骑自行车跑~调用的是子类重写后的功能
            /*父类对象不可以使用子类的特有功能*/
            //a.car();//报错,Transportation类里并没有这个方法
            //a.slow();//报错,Transportation类里并没有这个方法
            car.car();//四个轮子跑得快~,子类可以调用自己的功能
            bicycle.goout();//自行车好慢~,子类可以调用自己的功能

        }
    }
    /*多态的前提:继承+重写*/
    //创建父类
    class Transportation{
        //3.创建父类的普通方法
        public void goout(){
            System.out.println("出行~");
        }
    }
    //创建子类
    class Car extends Transportation{
        //添加重写的方法
        public void goout(){
            System.out.println("开汽车跑~");
        }
        //添加子类的特有功能
        public void car(){
            System.out.println("四个轮子跑得快~");
        }
    }
    //创建子类
    class Bicycle extends Transportation{
        //添加重写的方法
        @Override
        public void goout(){
            System.out.println("骑自行车跑~");
        }
        //添加子类的特有功能
        public void slow (){
            System.out.println("自行车好慢~");
        }
    }

}
相关文章
|
4月前
|
算法 Java 程序员
在Java的编程世界里,多态不仅仅是一种代码层面的技术,它是思想的碰撞,是程序员对现实世界复杂性的抽象映射,是对软件设计哲学的深刻领悟。
在Java的编程世界里,多态不仅仅是一种代码层面的技术,它是思想的碰撞,是程序员对现实世界复杂性的抽象映射,是对软件设计哲学的深刻领悟。
79 9
|
4月前
|
Java 开发者
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
45 7
|
4月前
|
Java 开发者
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
53 5
|
4月前
|
Java 程序员
让我们一起探讨Java多态的奥秘,看看它是如何打破“一刀切”的局限,让我们的代码更加生动多彩
让我们一起探讨Java多态的奥秘,看看它是如何打破“一刀切”的局限,让我们的代码更加生动多彩
46 5
|
4月前
|
Java 程序员
Java中的继承和多态:理解面向对象编程的核心概念
【8月更文挑战第22天】在Java的世界中,继承和多态不仅仅是编程技巧,它们是构建可维护、可扩展软件架构的基石。通过本文,我们将深入探讨这两个概念,并揭示它们如何共同作用于面向对象编程(OOP)的实践之中。你将了解继承如何简化代码重用,以及多态如何为程序提供灵活性和扩展性。让我们启程,探索Java语言中这些强大特性的秘密。
|
2月前
|
存储 Java 测试技术
Java零基础-多态详解
【10月更文挑战第10天】Java零基础教学篇,手把手实践教学!
36 4
|
2月前
|
Java 编译器 程序员
Java多态背后的秘密:动态绑定如何工作?
本文介绍了Java中多态的实现原理,通过动态绑定和虚拟方法表,使得父类引用可以调用子类的方法,增强了代码的灵活性和可维护性。文中通过具体示例详细解析了多态的工作机制。
79 4
|
3月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
2月前
|
Java
java继承和多态详解
java继承和多态详解
52 5
|
3月前
|
Java 编译器
Java——类与对象(继承和多态)
本文介绍了面向对象编程中的继承概念,包括如何避免重复代码、构造方法的调用规则、成员变量的访问以及权限修饰符的使用。文中详细解释了继承与组合的区别,并探讨了多态的概念,包括向上转型、向下转型和方法的重写。此外,还讨论了静态绑定和动态绑定的区别,以及多态带来的优势和弊端。
87 9
Java——类与对象(继承和多态)