以前觉得好难,现在回顾 忽然觉得好简单啊 就这点东西
直接上代码
package cn.xzc.hrms;
public class 多态学习 {
public static void main(String[] args) {
// 人类是人
People people= new People();
// 人类是动物
Animal animal_pe = new People();
// 猪是都动物
Animal animal_pi = new Pig();
// 猪是人类 语法错误 逻辑错误
// 人类是猪 语法错误 ;逻辑错误
// 动物是人类
// People people2= new Animal(); 语法错误
// 显然 父类对象 接收子类对象的变量的地址 是多态
people.eat();
animal_pe.eat();
animal_pi.eat();
/*1.显然父类变量调用的方法子类重写了 是直接调用的子类方法
* 2.父类变量只能调用出父类方法中有的方法
* */
if(animal_pi instanceof Pig){
Pig pig=(Pig) animal_pi;
pig.sleeping();
};
/*
* 3.父类非要用子类的方法那就只能强转了(大转小) 向下造型
* */
/*
* 根据这个特征显然多态的存在的作用在于屏蔽了差异性
* 同一个父类的变量的eat方法 由于子类地址不同,实际调用的是子类各自的特定的差异方法
* 但是对父类而言 都是调用的eat方法,好用
* */
}
};
class Pig extends Animal{
String name ="pig";
public void eat(){
System.out.println("白菜");
}
public void sleeping(){
System.out.println("sleeping");
}
};
class People extends Animal{
String name ="people";
public void eat(){
System.out.println("蛋炒饭");
}
};
class Animal{
String basename ="animal";
public void eat(){
System.out.println("eating ");
}
}
温故而知信 回顾一下面向对象 -----多态 最简单易懂版
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.