多态
在java中最重要的就是封装,多态与继承
在学习过程当中面对多态我也有了一定的了解,说实话,你要是要我说出多态定义,我是真不能说出个什么,按照书上了解就是说 多态是指同一操作作用于不同的对象 可以有不同的解释 以至于产生不同的执行结果 在编译时可以通过父类的应用只想指向子类对象 而在运行时 则通过父类所指向的子类对象 调用子类中重写父类的方法
话虽如此,但是思考起来会觉得是枯涩难懂
下面,用一段代码来演示
public class day {//父类 day
protected String name;
//protected 受保护的 也就是在下面使得子类能正常被使用
//攻击方法
public void attack() {
//在这里,方法不识实现
}
public void run() {
System.out.println("在奔跑");
}
public static void main(String[] args) {
day d = new oneDay();
//用父类调用子类里面的方法
d.name = "程咬金";
d.attack();
//调用的第二个子类
day a = new twoDay();
a.name ="安琪拉";
a.attack();
((twoDay) a).bomb();
//bomb 是引用变量,如果引用变量调用运行时类型的方法,需要强制类型转换为运行时类型
//强制类型转换是需要借助类型转换运算符的
if (a instanceof twoDay) {
System.out.println(true);
} else {
System.out.println(false);
}
}
//编译看左边,运行看右边
}
// 两个子类 ondDay跟twoDay
class oneDay extends day{
//重写攻击方法
@Override
public void attack(){
System.out.println(this.name + "正在进行物理攻击");
}
}
class twoDay extends day{
//重写攻击方法
@Override
public void attack(){
System.out.println(this.name + "正在进行法术攻击");
}
public void bomb() {
System.out.println(this.name + "正在爆炸,boom");
}
}