java多态的例子猫狗inatanceof(Java多态的例子)

多态的概念

多态是面向对象程序设计中的一种设计原则,它允许一个方法或对象对于不同的对象产生不同的响应。多态可以在不同的对象之间实现代码的复用,并且让程序更加灵活、可扩展。

Java中的多态

Java中的多态是通过继承来实现的,子类可以继承父类的属性和方法,并且可以覆盖父类的方法来实现自己的逻辑。在Java中,子类可以被当做父类来使用,即子类对象可以强制转换为父类对象,并且父类对象可以引用子类对象。这种行为就被称为Java的多态性。

猫和狗的多态实现

下面是一个简单的例子,演示了Java中多态的实现。

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

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

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

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

animal1.makeSound();
animal2.makeSound();

if(animal1 instanceof Dog) {
Dog dog = (Dog)animal1;
dog.fetch();
}

if(animal2 instanceof Cat) {
Cat cat = (Cat)animal2;
cat.scratch();
}
}
}
```

在上面的例子中,Animal是一个表示动物的基类,它有一个makeSound()方法。Dog和Cat是继承自Animal的子类,它们都实现了makeSound()方法来表达它们各自的声音。

在main()方法中,我们创建了一个Dog对象和一个Cat对象,并将它们都赋值给一个Animal类型的变量。我们可以看到,当我们调用animal1.makeSound()和animal2.makeSound()时,分别输出了“Dog barks”和“Cat meows”,这是因为我们在创建Dog和Cat对象时,指定了它们是用作Animal类型的变量的,因此它们的makeSound()方法被调用时,输出的是它们各自的声音。

而对于狗对象,我们利用instanceof关键字判断它是否是Dog类型的对象,如果是,就将animal1强制转换为Dog类型的对象,并调用Dog类中新增的fetch()方法;同样地,我们也对猫对象进行了判断,并调用了Cat类中新增的scratch()方法。这是因为子类可以拥有比父类更多的方法和属性,只不过在父类对象的引用下是无法访问到这些方法和属性的,这时就需要强制转换为子类对象来实现。

java多态的例子猫狗inatanceof(Java多态的例子)

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/javau02java.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月24日 下午11:35
下一篇 2023年4月24日 下午11:35

猜你喜欢