zoukankan      html  css  js  c++  java
  • 面向对象--多态

    多态就是一开始模糊一点想象空间大点,真实现的时候再具体化。

    如何实现多态?

    编译时类型(模糊一点,一般是一个父类):由声明时类型决定。

    运行时类型(运行时,具体是哪个子类就是哪个子类)

    多态:吐过编译时类型和运行时类型不一致就会造成多态。

    就是程序的最终状态只有在执行过程中才被决定而非在编译期间就决定了。

    多态是方法的多态,属性没有多态性。

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

    示例:

    public  class Test{

    public static void main(String [] args){

    Animal animal=new Dog();//向上自动转型

    System.out.println(animal.age)//属性调用时,仍然是父类的属性,属性没有多态。

    animalCry(new Daog());

    //传的具体是哪个类就调用那一个类的方法。提高了扩展性

    animalCry(new Cat());

    Dog dog=(Dog) animal;//编写程序时,如果想调用运行时类型的方法,只能进行类型转换。

    dog.gnawBone();

    System.out.println(dog instanceof Animal);

    System.out.println(animal instanceof Cat);

    System.out.printla(animal instanceof Dog);

    }

    static void animalCay(Animal a){

    a.shout();

    }

    }

    class Animal{

    int age=;

    public void shout(){

    System.out.println("叫声")

    }

    }

    class Dog extends Animal{

    int age=20;

    public void shout(){

    System.out.println("汪汪汪")

    }

    }

    class Cat extends Animal{

    int age=15;

    public void shout(){

    System.out.primtln("喵喵喵");

    }

    }

  • 相关阅读:
    c语言 数组名是常量指针
    c语言 动态数组
    c语言 指针的值
    c语言 &取地址运算符的理解
    c语言 指针与地址的区别
    c语言 指针与数组
    linux cheese摄像机工具在window电脑上显示
    C#实现简单的 Ping 的功能,用于测试网络是否已经联通
    c# 扫描局域网IP列表的几种方法
    c# 遍历局域网计算机(电脑)获取IP和计算机名称
  • 原文地址:https://www.cnblogs.com/javatask/p/6753603.html
Copyright © 2011-2022 走看看