JAVA之多态性

package com.test;

//多态性

public class test4 {

/**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

  Animal an = new Cat();

  an.cry();

  an = new Dog();

  an.cry();
    }
}
    
    class Animal
    {
//        private String name;
//        
//        private String color;
//        
//        private float weight;
//        
        public void cry()
        {
            System.out.println("我是动物,我不知道怎么叫!!");
        }
    }
    
    class Cat extends Animal
    
    {
        public void cry()
        {
            System.out.println("我是猫,我的叫声是喵喵!!");
        }
    }
    
    class Dog extends Animal
    {
        public void cry()
        {
            System.out.println("我是狗,我的叫声是汪汪!!");
        }
    }

时间: 2025-01-02 01:33:00

JAVA之多态性的相关文章

Java:多态性

Java的多态性:发送消息给某个对象,让该对象自行决定响应何种行为. 通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用. java的多态性要满足三个条件: 1.继承关系 2.在子类重写父类的方法 3.父类引用指向子类的对象,即animal p = new dog() 在多态中非静态成员函数的特点: 在编译时期:参阅引用形变量所属的类中是否有要调用的方法.如果有,编译通过:否则,编译不通过 在运行时期:参阅对象所属的类中是否有要调用的方法.如果有,运行成功:否则,运行失败. 总结:编译时

【java的多态性】

java的多态性是面向对象的三大特性之一.(封装,继承,多态),多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定.因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码, 让

Java虚拟机 - 多态性实现机制

[深入Java虚拟机]之五:多态性实现机制--静态分派与动态分派 方法解析 Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址.这个特性给Java带来了更强大的动态扩展能力,使得可以在类运行期间才能确定某些目标方法的直接引用,称为动态连接,也有一部分方法的符号引用在类加载阶段或第一次使用时转化为直接引用,这种转化称为静态解析.这在前面的"Java内存区域与内存溢出"一文中有提到. 静态解

java的多态性(二)

2013-10-16 19:44 9364人阅读 评论(25) 收藏 举报  分类: [JAVA开发]-----Java提高篇(36)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承是为了重用父类代码.两个类若存在IS-A的关系就可以使用继承.,同时继承也为实现多态做了铺

深入理解JAVA的多态性[转]

昨天看到一个关于多态性的帖子,参考了回帖者的理解,加入了一些自己的看法,整理出来供大家参考,不一定完全正确,欢迎大家批评指正. (一)相关类 class A ...{         public String show(D obj)...{                return ("A and D");         }          public String show(A obj)...{                return ("A and A&qu

Java中多态性的实现

class A ...{ public String show(D obj)...{ return ("A and D"); } public String show(A obj)...{ return ("A and A"); } } class B extends A...{ public String show(B obj)...{ return ("B and B"); } public String show(A obj)...{ re

[Java基础] 多态性

1.Java 引用变量有两个类型:一个是编译时的类型,一个是运行时的类型,编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给该变量的对象决定.如果编译时类型和运行时类型不一致,就会出现所谓的多态性: 2.引用变量在编译阶段只能调用其编译时类型所具有的方法,但运行时则执行它运行时类型所具有的方法,这就是方法多态性的体现. 3.多态性是针对方法的,对象的属性不具备多态性.通过引用变量访问对象实例属性时,系统总是试图访问编译时类型所定义的属性,而不是运行时类型所定义的属性. 示例代码:

Java 语言多态性

https://www.ibm.com/developerworks/cn/java/java-language-polymorphism/index.html 定义多态性 多态性是面向对象编程中的一个概念,表示"不同形态",实际上意味着,根据实现方法的对象,相同方法名称具有不同的行为. 在 Java 编程语言的语境中,多态性意味着(通过一种方法)以不同方式为不同对象实现相同的行为契约.在 Java 中,通常有 3 种方式实现此目的: 接口 抽象方法 方法重写 通过接口实现多态性 实质

java面向对象- 多态性的体现和使用

多态体现: 方法的重载和重写 对象的多态性 2.对象的多态性: 向上转型:程序会自动完成 父类 父类对象 = 子类实例 向下转型:强制类型转换 子类 子类对象 = (子类)父类实例 class A{ public void tell01(){ System.out.println("A--tell01"); } public void tell02(){ System.out.println("A--tell02"); } } class B extends A{

java笔记多态性

今天听一个同学讲了java动态绑定的一个很好地例子,我深受启发,特此记录.java动态绑定是在运行时才会具体绑定,而不是在编译的时候进行相关操作,这为代码的灵活性提供了极大便利,也使得维护边的较为简便. 对于动态绑定我的理解是,在定义一个方法 的时候,需要某些参数,比如一个类对象,但是在运行的时候这个对象才回确定,比如打CS时候的各种枪,这个时候,为这个方法重载不同的对象参数会变得极为繁琐,所以我们可以造一个枪的父类,把父类的对象传到这个参数中,在运行时,再决定是哪种具体的枪. class Gu