zoukankan      html  css  js  c++  java
  • Java多态(更新中...)

    多态

    多态指的是同一方法调用,由于对象不同可能会有不用的行为。在现实生活中,同一个方法,具体实现有可能完全不同,例如你叫一个人去玩,学霸就可能偷偷溜去学习,有的人则是跑去看电影,而我就有可能去睡觉,所以玩()这个方法,可能会有不同的行为,也称为方法的多态,属性是没有多态的。

    多态实现需要三个必要条件:

    • 1、父类对象指向之类对象
    • 2、继承
    • 3、重写

    看一个具体的小例子:

    **package com.liuzeyu12a.OOT;
    /**
     * 实现多态的三个必要条件
     * 1、父类对象指向之类对象
     * 2、继承
     * 3、重写
     */
    public class TestPolym {
        public static void main(String[] args) {
            Animal a = new Animal();
            animalCry(a);
            Dog dog = new Dog();
            animalCry(dog);  //出现多态,或者
            Animal dog2 = new Dog();  //自动向上转型(编译器只认为这个dog是Animal 因此不能调用Dog类的方法)
            animalCry(dog2);   //打上动物标签的狗 仍然还是狗
            //dog2.seeDoor(); 不能被执行 没有这个方法
            
            Dog dog22 = (Dog)dog2; //向下转型
            dog22.seeDoor();    //可以调用Dog类的方法
            Cat cat = new Cat();
            animalCry(cat);
        }
        //测试方法
        static  void animalCry(Animal animal){
            animal.shut();
        }
    }
    class Animal{
        public void shut(){
            System.out.println("动物叫了一声.");
        }
    }
    class Dog extends Animal{
        public void shut(){
            System.out.println("狗叫了汪汪汪.");
        }
        public void seeDoor(){
            System.out.println("狗看门..");
        }
    }
    class Cat extends Animal{
        public void shut(){
            System.out.println("猫叫了喵喵喵.");
        }
    }**
    

    一边学习一边补充。

  • 相关阅读:
    leetcode_question_67 Add Binary
    几种常用控件的使用方法
    JavaBean讲解 规范
    [置顶] JDK-CountDownLatch-实例、源码和模拟实现
    恋人分手后需要做的不是挽回而是二次吸引
    leetcode_question_70 Climbing Stairs
    偶然碰到的Win7 64位下CHM 的问题解决
    FTP中各文件目录的说明
    深入理解line-height与vertical-align(1)
    行内元素和块级元素
  • 原文地址:https://www.cnblogs.com/liuzeyu12a/p/12358973.html
Copyright © 2011-2022 走看看