温故而知信 回顾一下面向对象 -----多态 最简单易懂版

以前觉得好难,现在回顾 忽然觉得好简单啊 就这点东西

直接上代码 


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   ");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值