多态的意义:一个对象,多种形态
父类可以代表子类
多态下创建对象:
父类 对象名 = new 子类([参数]);
引用类型 引用对象 = new 实际类型([参数]);
引用对象只能调用父类中存在或者重写的方法
父类:
package com.zking.test;
/**
* 父类 动物类
* @author d
*
*/
public class Animal {
int age;
String name;
public void eat() {
System.out.println("牙好胃口就好");
}
}
子类:
package com.zking.test;
/**
* 子类:狗类
* @author d
*
*/
public class Dog extends Animal {
//重写 吃方法
public void eat() {
System.out.println("蘸着吃");
}
public void run() {
System.out.println("狗急了跳墙");
}
}
这个子类里有一个"run"方法,是父类里没有的,
那么这个"run"方法在测试类中就无法被调用。
子类:
package com.zking.test;
public class Test {
public static void main(String[] args) {
//创建一个动物对象,这只动物是只狗
Animal a = new Dog();
a.eat();
就验证了这句“ 引用对象只能调用父类中存在或者重写的方法”
但是你一定要调用的话就得运用下面这个方法
//把引用对象转换为实际类型
Dog dog = (Dog)a;//强制转换:(转换后的类型)要转换的数据
dog.run();
本文通过一个简单的Java示例,解释了多态性的概念,即一个对象可以有多种形态。在示例中,`Dog`类继承自`Animal`类并重写了`eat`方法。通过父类引用创建子类对象,可以调用子类中重写的方法。然而,由于类型转换的限制,不能直接通过父类引用调用子类特有的`run`方法,需要进行强制类型转换。这段代码演示了Java中多态性的重要原则和使用场景。

262

被折叠的 条评论
为什么被折叠?



