当前位置: 首页 > article >正文

Java面向对象. 多态

目录

java多态是什么东西?首先要理解什么是多态

Java多态指同一行为具有多个不同表现形式。如父类引用指向子类对象,调用重写方法时呈现不同结果。

1.多态的概念

一、多态的基本概念

二、多态的实现方式

接口实现

三、多态的好处

提高代码的可扩展性

2.多态的运用

继承和多态:通过继承实现多态,即子类对象可以替换父类对象并调用父类的方法。这样,在不改变原有代码的情况下,可以通过添加新的子类对象来扩展功能。

接口和多态:接口定义了一组方法的规范,不同的类可以实现同一个接口并提供自己的具体实现。通过接口,可以统一对不同的类对象进行操作,并调用相同的方法。

方法重载和多态:方法重载是指在一个类中定义多个同名但参数列表不同的方法。通过方法重载,可以根据传入的参数类型和个数的不同来选择调用不同的方法。

泛型和多态:泛型是一种参数化类型的机制,可以在定义类、接口和方法时使用类型参数。通过泛型,可以编写通用的代码,适用于不同类型的对象。

多态的运用主要用处:

3.instanceof   

instanceof的运用主要包括以下几个方面:

多态判断:在多态中,可以使用instanceof来判断一个对象是否是某个父类的实例。通过这种方式,可以在运行时动态地确定对象的类型,并根据不同的类型执行不同的操作。

接口判断:除了类的判断,instanceof也可以用于判断一个对象是否实现了某个接口。可以通过instanceof来判断对象是否属于某个接口的实例,以便进行相应的操作。


java多态是什么东西?首先要理解什么是多态

Java多态指同一行为具有多个不同表现形式。如父类引用指向子类对象,调用重写方法时呈现不同结果。

1.多态的概念

一、多态的基本概念


在Java中,多态(Polymorphism)是面向对象编程的一个重要概念。多态字面上的意思是“多种形态”。它允许不同类的对象对同一消息做出不同的响应。

二、多态的实现方式


方法重写(Override)
当子类继承父类时,可以重写父类中的方法。例如,有一个父类 Animal ,其中有一个 makeSound() 方法,代码可能如下:

 
class Animal {
    public void makeSound() {
        System.out.println("Animal makes a sound");
    }
}


 
然后有一个子类 Dog ,它重写了 makeSound() 方法:
 

class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Dog barks");
    }
}


 
当我们创建一个 Dog 对象并调用 makeSound() 方法时,它执行的是 Dog 类中重写后的方法,而不是 Animal 类中的方法。


接口实现


接口定义了一组方法签名,但没有方法体。一个类可以实现一个或多个接口。例如,有一个 Flyable 接口:
 

interface Flyable {
    void fly();
}


 
然后有类 Bird 和 Plane 都实现了 Flyable 接口:
 

class Bird implements Flyable {
    @Override
    public void fly() {
        System.out.println("Bird flies with wings");
    }
}

class Plane implements Flyable {
    @Override
    public void fly() {
        System.out.println("Plane flies with engines");
    }
}


 
这里 Bird 和 Plane 对 fly 方法有不同的实现,这是多态的一种体现。


三、多态的好处


提高代码的可扩展性



假设我们有一个处理 Animal 对象的方法,在不改变这个方法的代码的情况下,可以很容易地将新的 Animal 子类对象传递进去,只要这些子类正确重写了相关方法
 

class Zoo {
    public static void main(String[] args) {
        Animal animal1 = new Dog();
        Animal animal2 = new Cat();
        makeAnimalSound(animal1);
        makeAnimalSound(animal2);
    }

    public static void makeAnimalSound(Animal animal) {
        animal.makeSound();
    }
}


 
如果以后创建了新的 Animal 子类,如 Rabbit ,只要 Rabbit 重写了 makeSound() 方法,就可以直接将 Rabbit 对象传递给 makeAnimalSound 方法。
 

2.多态的运用

多态是面向对象编程中的重要概念,它允许通过不同的对象以统一的方式调用同一个方法或函数。

多态的运用主要体现:

  1. 继承和多态:通过继承实现多态,即子类对象可以替换父类对象并调用父类的方法。这样,在不改变原有代码的情况下,可以通过添加新的子类对象来扩展功能。

  2. 接口和多态:接口定义了一组方法的规范,不同的类可以实现同一个接口并提供自己的具体实现。通过接口,可以统一对不同的类对象进行操作,并调用相同的方法。

  3. 方法重载和多态:方法重载是指在一个类中定义多个同名但参数列表不同的方法。通过方法重载,可以根据传入的参数类型和个数的不同来选择调用不同的方法。

  4. 泛型和多态:泛型是一种参数化类型的机制,可以在定义类、接口和方法时使用类型参数。通过泛型,可以编写通用的代码,适用于不同类型的对象。

多态的运用主要用处:

可以提高代码的灵活性、可扩展性和复用性,降低代码的耦合度。

3.instanceof   

instanceof是Java中的一个运算符,用于判断一个对象是否属于某个类或其子类的实例。

对象 instanceof 类名

对象是要进行判断的对象,类名是要判断的类或接口。

instanceof的运用主要包括以下几个方面:

  1. 多态判断:在多态中,可以使用instanceof来判断一个对象是否是某个父类的实例。通过这种方式,可以在运行时动态地确定对象的类型,并根据不同的类型执行不同的操作。

  2. 接口判断:除了类的判断,instanceof也可以用于判断一个对象是否实现了某个接口。可以通过instanceof来判断对象是否属于某个接口的实例,以便进行相应的操作。

使用instanceof可以在程序中根据对象的类型进行不同的处理逻辑,以提高代码的灵活性和可扩展性.


http://www.kler.cn/a/417675.html

相关文章:

  • nlp文章相似度
  • Vue - customRef 自定义ref
  • 视频融合平台EasyCVR无人机场景视频压缩及录像方案
  • 【C++】多态详细讲解
  • 在K8s中部署动态nfs存储provisioner
  • 获取 ARM Cortex - M 系列处理器中 PRIMASK 寄存器的值
  • 二十一、QT C++
  • 家庭打印机如何连接电脑
  • 提升用户体验、创新产品与高效运营,企业发展三驾马车
  • 损失函数分类
  • 鸿蒙生态崛起的机遇有什么
  • 【人工智能】探索自然语言生成(NLG):用GPT生成文本
  • 23种设计模式-单例(Singleton)设计模式
  • 洛谷 P1746 离开中山路 C语言 bfs
  • 柔性芯片:实现万物互联的催化剂
  • ScreenshotToCode安装教程
  • 存储过程与自然语言处理逻辑的不同与结合
  • 模拟实现命令行解释器shell
  • 【C++初阶】第5课—动态内存管理
  • 混乱原理与程序设计。
  • clickhouse 使用global in 优化 in查询
  • 【VUE3】新版Vue3+ElementPlus全家桶开发视频项目实战
  • vxlan 手工隧道(头端复制)
  • burpsuite功能模块学习(2)
  • 后台管理-动态路由配置以及用户权限管理(vue3+element plus+koa+Sequelize )
  • android将pcm byte[]通过Librtmp进行rtmp推流