java---多态最详细讲解

多态

  • 多态作为面向对象的三大特性之一,体现出了重要的作用. 一种事物 可以用多种状态表示 .

但是是有前提的: 首先应该有继承关系. 要有重写, 父类对象引用子类对象

优点是提高了代码的可扩展性. 方便使用,使代码更简洁

 //动物类
public class Animal {
        public String name;
        public int age;

        public void sleep(){
            System.out.println("睡觉");
        }

        public void eat(){
            System.out.println("动物吃");
        }
    }


	//狗类
    public class Dog extends Animal{
        public String name;
        public int age;

        @Override
        public void sleep(){
            System.out.println("睡觉");
        }

        @Override
        public  void eat(){
            System.out.println("狗吃");
            super.eat();
        }

    }

public class Test1  {

    public static void main(String[] args) {
            Animal dog = new Dog();
            System.out.println(dog.name);

    }

}

public class Test1  {

    public static void main(String[] args) {
            Animal dog = new Dog();         //多态的使用 用父类变量引用子类对象
    }
}

上述代码 ,狗类继承动物类, new Dog()了一个动物类,但是用父类变量去接收,引用子类对象. 这种写法就是多态的使用.

多态满足 编译看左边,运行看右边.

当访问静态变量或者直接在类的内部给属性初始化的时候, 首先使用,访问的是左边的变量,static的方法不能去重写,因为他是属于类的.

  • 多态中的向上转型 向下转型

    Animal dog = new Dog();     //向上转型  向下转型之后,因为编译看左边,左边不能调用到子类								的方法,使得方法的访问出现问题
         dog.sleep();
    
     if(dog instanceof Dog){
            Dog dog1  = (Dog)dog;    
                dog1.play();      
        }     //向下转型  使用instanceof检测当前对象是否是该类型,转型之后就可以访问子类独有的方法
    
    

    向下转型 目的在于访问子类独有的方法.

  • 多态存在的必要条件

    1. 要有继承 2.要有重写 3.父类的引用指向子类对象
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值