多态性是OOP中的一个重要特性,主要是用来实现动态联编的,换句话说,就是程序的最终状态只有在执行过程中才被决定而非在编译期间就决定了。
例子:
package com.ws.basic;
class gobj{
public void attack() {
System.out.println("攻击!");
}
}
class tower extends gobj{
public void attack() {
System.out.println("箭塔攻击范围内所有目标,重甲单位有伤害加成!");
}
}
class griffon extends gobj{
public void attack() {
System.out.println("狮鹫在进攻,溅射效果!");
}
}
public class test {
public static void testattack(gobj obj){
obj.attack();
}
public static void main(String[] args) {
gobj g = new griffon();
testattack(g);
}
}
对于多态,需要记住多态的三个必要条件:要有继承,要有方法重写,父类引用指向子类对象。