认识Java的第十一天(下)——多态


多态是我们面向对象三大特征之一。在平时的生活中,比如跑这个动作,不同的动物中,跑的动作也是不一样的,可见,同一个行为,通过不同的事物,可以体现出不同的形态,多态就是描述这么一个状态。
多态:同一个行为,具有多个不同的表现形式。
前提:

1、继承或者实现【二选一】
2、方法重写
3.父类引用指向子类的对象

多态体现

格式:
父类类名 变量名=new 子类对象();
变量名.方法名();
父类的类型:指子类对象继承父类的类型,或者实现了父接口也可以。
Fu fu=new Zi();
普通的成员方法:编译能否通过看左边,运行结果看右边
普通的成员变量:编译能否通过看左边,运行结果看左边

public class Animal {
    int age=100;
    public void eat(){
        System.out.println("我是动物类");
    }
}
public class Cat extends Animal {
    int age=10000;
    @Override
    public void eat() {
        System.out.println("吃鱼!");
    }
}
public class Demo {
    public static void main(String[] args) {
        //多态的形式,创建对象
        Animal animal=new Cat();
        //普通的成员方法:编译能否通过看左边,运行结果看右边
        animal.eat();
        //普通的成员变量:编译能否通过看左边,运行结果看左边
        System.out.println(animal.age);
    }
}
/*吃鱼!
100
*/

多态的好处

在实际工作中,父类类型作为方法的形式餐宿,传递子类对象的给方法,进行方法的调用,更能体现多态的扩展性。

public class Dog extends Animal{
    @Override
    public void eat() {
        System.out.println("吃骨头");
    }
}
public class Demo {
    public static void main(String[] args) {
      /* Cat cat=new Cat();
        Dog dog=new Dog();
        showCat(cat);
        showDog(dog);*/
        Animal animal=new Cat();
        Animal animal1=new Dog();
        showAnimal(animal);
        showAnimal(animal1);
    }
    /*private static void showCat(Cat cat) {
    }
    private static void showDog(Dog dog) {
    } */
    public static void showAnimal(Animal animal){
        animal.eat();
    }
}

注释与代码对比
public static void showAnimal(Animal animal)相当于
private static void showCat(Cat cat) {
}
private static void showDog(Dog dog) {
}

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值