什么是多态

多态是面向对象编程中的一个重要概念,指的是同一个方法调用会根据对象的不同而表现出不同的行为。在Java中,多态实现的基础是方法的重写(覆写)和方法的重载。

下面是一个简单的示例来说明多态的概念:

class Animal {
    public void makeSound() {
        System.out.println("动物发出叫声");
    }
}

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

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

public class PolymorphismExample {
    public static void main(String[] args) {
        Animal myDog = new Dog();
        Animal myCat = new Cat();
        
        myDog.makeSound(); // 输出"汪汪汪"
        myCat.makeSound(); // 输出"喵喵喵"
    }
}

在上面的示例中,Animal类是一个基类,里面定义了一个makeSound方法。Dog和Cat类继承自Animal类,并且重写了makeSound方法。在主程序中,创建了一个Dog对象和一个Cat对象,但是它们都被声明为Animal类型。当调用makeSound方法时,实际上会根据对象的实际类型而执行不同的方法体,这就是多态的表现。

通过多态,可以让代码更加灵活和可扩展,能够更好地应对需求变化。

1.什么是多态?
同类型的对象,表现出的不同形态。


2.多态的表现形式
父类类型   对象名称=子类对象;

3.多态的前提
有继承关系
有父类引用指向子类对象
有方法重写

4.多态的好处?
使用父类型作为参数,可以接收所有子类对象,
体现多态的扩展性与便利。

 

在Java中,可以使用父类型作为参数来接收所有子类对象。这种特性称为多态。以下是一个简单的示例代码:

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

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

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

public class Main {
    public static void main(String[] args) {
        Animal dog = new Dog();
        Animal cat = new Cat();

        makeAnimalSound(dog);
        makeAnimalSound(cat);
    }

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

在这个示例中,Animal类是父类,而Dog和Cat类是Animal的子类。在main方法中,我们创建了一个Dog对象和一个Cat对象,并将它们分别传递给makeAnimalSound方法,该方法以Animal类型作为参数。由于多态的特性,makeAnimalSound方法可以接收任何Animal的子类对象,并调用相应子类的makeSound方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值