zoukankan      html  css  js  c++  java
  • 多态

            多态指的是同一个方法调用,由于对象不同可能会有不同的行为。

    现实生活中,同一个方法,具体实现会完全不同。

    多态的要点:

    1.多态是方法的多态,不是属性的多态(多态与属性无关)

    2.多态的存在要有三个必要条件:继承,方法重写,父类引用指向子类对象。

    3.父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。

    package cn.f;
    
    public class TestPolym {
        public static void main(String args[]) {
            Animal a=new Animal();
            Dog d=new Dog();
            Cat c=new Cat();
            animalCry(a);
            animalCry(d);
            animalCry(c);
        }
        static void animalCry(Animal a) {      //父类引用指向子类对象
            a.shout();
        }
    
    }
    class Animal{
        public void shout() {
            System.out.println("叫了一声");
        }
    }
    class Dog extends Animal{
        public void shout() {
            System.out.println("汪汪汪");
        }
    }
    class Cat extends Animal{
        public void shout() {
            System.out.println("喵喵喵");
        }
    }

     多态的内存分析

    抽象类(abstract)

    package cn.aa;
    
    public abstract class Animal {
        public abstract void run();                  //抽象方法的意义在于:将方法的设计和方法的实现分离了!
        public Animal() {
            System.out.println("创造一个动物");
        }
    }
    class Cat extends Animal{
    
        @Override
        public void run() {
            System.out.println("喵喵喵");
            
        }
        public void breath() {
            System.out.println("嘘");
            
        }
        
        
    }
    class Dog extends Animal{
        public void run() {
            System.out.println("汪汪汪");
        }
    }
  • 相关阅读:
    长连接和短连接
    4GLTE@NB-IOT
    JavaScript匿名类整理学习笔记
    关于javaScript注册事件传递参数的浅析
    动态加载javascript增强版
    JavaScript的gzip静态压缩方法记录
    JavaScript判断浏览器类型及版本
    NodeJS与Javascript时代
    《javascript征途》学习笔记
    超酷的JavaScript叙事性时间轴(Timeline)类库
  • 原文地址:https://www.cnblogs.com/ssxblog/p/11183217.html
Copyright © 2011-2022 走看看