多态的意义:一个对象,多种形态
父类可以代表子类
多态下创建对象:
父类 对象名 = 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();