精华内容
下载资源
问答
  • java实现多态的机制

    2011-03-16 09:43:00
    java实现多态机制

    问:java 中实现多态的机制是什么?

    答:  靠的是父类或者接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在程序运行期间才能确定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。    

    展开全文
  • Java实现多态例子

    千次阅读 2014-03-22 12:30:59
    多态性是指统一的接口,不同的表现形式。在我们下面的例子中,有5个类。...多态Java语言的三大特性之一(封装\继承\多态),其中继承与多态是离不开的,我们有必要理解好多态。 以下代码涉及到Perso

    多态是Java语言的三大特性之一(封装\继承\多态),其中继承与多态是离不开的,我们有必要理解好多态。

    以下代码涉及到Person类、Friend类、GrilFriend类、Workmate类,其中Person类是其他三个类的父类

    四个类都有一个relationInfo()的方法,用输出关系信息。

    package com.xyj.java.t_2_1_4.duotai;
    
    public class Person {
    	void relationInfo(){
    		System.out.println("你是谁呀,我才不认识你!");
    	}
    }
    

    package com.xyj.java.t_2_1_4.duotai;
    
    public class Friend extends Person {
    
    	@Override
    	void relationInfo() {
    		System.out.println("我是XYJ的朋友,我是老毕!");
    	}
    
    }
    

    package com.xyj.java.t_2_1_4.duotai;
    
    public class GrilFriend extends Friend {
    
    	@Override
    	void relationInfo() {
    		System.out.println("我是XYJ的女朋友,我是WZY!");
    	}
    	
    }
    

    package com.xyj.java.t_2_1_4.duotai;
    
    public class Workmate extends Person {
    
    	@Override
    	void relationInfo() {
    		System.out.println("我是XYJ的同事,我是超人!");
    	}
    	
    }
    

    最后一个是测试类

    package com.xyj.java.t_2_1_4.duotai;
    
    public class TestDuotai {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Person[] persons = new Person[4];
    		persons[0] = new Person();
    		persons[1] = new Friend();
    		persons[2] = new GrilFriend();
    		persons[3] = new Workmate();
    		
    		for(Person p : persons){
    			if(p != null){
    				p.relationInfo();
    			}
    		}
    	}
    
    }
    


    展开全文
  • 抽象类实现多态: 父类对象指向子类对象,可调用子类的重写方法。 接口实现多态: 接口对象指向实现类对象,可调用实现类的重写方法 以下就是生活中两种多态的实例,**抽象类是模板,接口是功能。 **描述: Door....

    抽象类实现多态:
    父类对象指向子类对象,可调用子类的重写方法。
    接口实现多态:
    接口对象指向实现类对象,可调用实现类的重写方法
    以下就是生活中两种多态的实例,**抽象类是模板,接口是功能。

    **描述:
    接口、抽象类实现多态图
    Door.java 抽象类

    package com.dialogd.polymorphic;
    //抽象类,抽象类是一种模板
    public abstract class Door {
    	//开门的方法
    	public abstract void open();
    }
    

    IFace.java 接口1

    package com.dialogd.polymorphic;
    //人脸识别的功能,接口是功能时
    public interface IFace {
    	//人脸识别的功能
    	public void checkFace();
    }
    

    IHander.java 接口2

    public interface IHander {
    	//指纹识别功能
    	public void checkHander();
    }
    

    SafeDoor.java

    public class SafeDoor extends Door implements IHander {
    
    	@Override
    	public void open() {
    		// TODO Auto-generated method stub
    		System.out.println("普通安全门开门...");
    	}
    
    	@Override
    	public void checkHander() {
    		// TODO Auto-generated method stub
    		System.out.println("普通安全门的指纹识别...");
    	}
    }
    

    SuperDoor.java

    public class SuperDoor extends Door implements IHander,IFace {
    
    	@Override
    	public void open() {
    		// TODO Auto-generated method stub
    		System.out.println("超级安全门开门...");
    	}
    
    	@Override
        	public void checkFace() {
        		// TODO Auto-generated method stub
        		System.out.println("超级防盗门的人脸识别...");
        	}
        
        	@Override
        	public void checkHander() {
        		// TODO Auto-generated method stub
        		System.out.println("超级防盗门的指纹识别...");
        	}
        
        }
    

    Test.java

    public class Test {
    	public static void main(String[] args) {
    		//抽象类实现多态
    		Door door = new SafeDoor();
    		//父类对象指向子类对象,可调用子类的重写方法
    		door.open();
    		door = new SuperDoor();
    		door.open();
    		
    
    		//接口实现多态
    		IHander iHander = new SafeDoor();
    		//接口对象指向实现类对象,可调用实现类的重写方法
    		iHander.checkHander();     
    		
    		iHander = new SuperDoor();
    		iHander.checkHander();
    		IFace iFace = new SuperDoor();
    		iFace.checkFace();
    	}
    }
    

    抽象类Door.java对子类(普通安全门)SafeDoor.java、(超级安全门)SuperDoor.java实现了多态。
    接口IHander、IFace对是实现类SafeDoor.java、SuperDoor.java实现了多态。

    展开全文
  • C++,C#与JAVA实现多态的比较

    千次阅读 2006-12-23 00:29:00
    今天为了过几天的笔试,复习了一下面向对象的多态,比较了一下C++,C#和JAVA实现多态方法,发现JAVA实现多态比前两者简单很多,只要在子类中override父类的方法就可以了,不需要加什么关键字,JAVA这样就可以直接...
      
    

     今天为了过几天的笔试,复习了一下面向对象的多态,比较了一下C++,C#和JAVA实现多态的方法,发现JAVA实现多态比前两者简单很多,只要在子类中override父类的方法就可以了,不需要加什么关键字,JAVA这样就可以直接实现多态了

     再看看C#,需要在父类方法前加virtual,子类继承的方法前加override才可以实现多态,两者少一个都不可以,就说就算你父类加了virtual,子类如果没有override或者是个new是不能实现多态的,如果父类没有virtual子类没有override关键字那就更不可以了,看下面代码:

     

    using  System;
     
    abstract   class  A
    {
        
    public virtual void F()
        
    {
            Console.WriteLine(
    "A.F");
        }

        
    public abstract  void G();
        
    internal virtual void  a()
        
    {
            Console.WriteLine(
    "A.F");
        }

    }


    class  B:A
    {
          
    public  override  void F()
        
    {
            Console.WriteLine(
    "B.F");
        }

        
    public override void G()
        
    {
            Console.WriteLine(
    "B.G");
        }

        
    internal new void a()
        
    {
            Console.WriteLine(
    "B.F");
        }

    }


    class  Class1
    {
        
    /// <summary>
        
    /// 应用程序的主入口点。
        
    /// </summary>

        [STAThread]
        
    static void Main(string[] args)
        
    {
            B b 
    = new B();
            A a 
    = b;
            a.F();
            a.G();
            b.F();
            b.G();
            a.a();
            b.a();
        }

    }

     

    结果:

    B.F
    B.G
    B.F
    B.G
    A.F
    B.F

    再来谈一谈才C++的多态,C++的多态实现只要在父类方法前加virtual申明为虚函数就可以了,子类需要重载不需要加光键字,加了反而错。

    写以上文章仅仅为了帮助自己记忆3个语言实现多态的方式,因为现在学了太多的语言有时候就会思想混乱,错把一个语言实现多态的方法当成另一个,写了这文后希望自己以后能记住。

    展开全文
  • java多态实现

    2014-04-24 09:57:38
    java多态实现的课件,给那些需要的人 讲述了java多态的概念、分类、实现 综合案例讲解、总结多态的作用
  • 要有继承;要有重写;父类引用指向子类对象。这三个字儿 的分量是真的重! 转载于:https://www.cnblogs.com/929LF/p/9050668.html
  • 深入Java核心Java多态实现机制.pdf
  • 开发中在什么地方用多态,怎么实现多态? 接口实现、抽象类、继承父类进行方法重写、同一个类中进行方法重载。 接口:辐射拓展,如果接口中新增加了方法,则需要修改所有实现此接口的实现方法。 接口中的变量会...
  • Java 如何实现多态

    2020-03-31 13:58:26
    什么是多态 实现多态有三个前提条件 1、 继承的存在;...最后使用父类的引用变量调用子类重写的方法即可实现多态。即,同一个方法 , 可以有不同的展现结果; 例子 父类 public class PeoPle { public vo...
  • Java多态实现

    2020-01-27 15:32:10
    Java多态实现 1.普通类 AnimalFu a =new AnimalZi new(); 2.抽象类 animal是父类抽象类 Animal a = new Cat(); 3.接口 // 学生是类smoking是接口 Smoking sk = new Student() 多态的特点: ...
  • java实现多态的机制Java系列2021.pdf
  • 1.派生类对象的方法调用必须通过一个基类类型的变量进行 2....派生类的方法的访问说明符不能比基类有更多的限制 深入 Java 核心 Java多态实现机制 多态性是面向对象程序设计代码重用的一个重要
  • Java多态实现

    2012-08-29 13:02:56
    Java多态实现
  • java接口实现多态

    万次阅读 2016-11-08 20:00:43
    多态: 父类的引用类型变量指向了子类的对象或者是接口类型的引用类型变量指向了接口实现类 的对象。 实现关系下的多态: 接口 变量 = new 接口实现类的对象。 interface Dao{ //接口的方法全部都...
  • java 笔试 java实现多态的机制是什么
  • Java——多态

    2020-12-21 19:51:44
    Java——多态 多态的特性 1.可替换性(substitutability)。多态对已存在代码具有可替换性。 例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环, 也同样工作。 2.可扩充性(extensibility)。多态对代码...
  • 关于java多态实现

    2015-11-20 22:17:25
    java多态
  • 实现多态的前提条件是:1、继承;2、覆写;3、父类引用指向子类的实例。不能继承、覆写的方法均不能实现多态的效果。
  • 这里的接口不应理解得太死板,比如在 Java 里面,继承一个类和实现一个接口本质上都是一种继承行为,因此都可以理解为多态的体现。 从静态和动态的角度进行划分,多态可以分为编译时多态和运行时多态。 编译时多态...
  • JAVA多态

    2017-01-23 13:11:31
    JAVA多态
  • 什么是多态JAVA多态 方法必须要被所在类或对象调用才有意义 若方法含有参数: 形参:方法声明时的参数。 实参:方法调用时实际传给形参的参数值。 JAVA里将实参数值传入方法的传递机制只有 值传递 在值...
  • JAVA中多态性是对象多种表现形式的体现。在面向对象中,最常见的多态发生在使用父类的引用来引用子类的对象。下面这篇文章主要给大家介绍一下,需要的朋友可以参考下
  • java多态实现

    2019-08-11 21:07:00
    什么是多态? 1.面向对象的三大特性:封装、继承、多态。从一定的角度来看,封装和继承几乎都是...3.实现多态的技术称为:动态绑定,是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。...
  • java - 多态实现机制

    2019-10-03 05:04:24
    Java提供了编译时多态和运行时多态两种多态机制。前者是通过方法重载实现的,后者是通过方法的覆盖实现的。  在方法覆盖中,子类可以覆盖父类的方法,因此同类的方法会在父类与子类中有着不同的表现形式。  在...
  • java —— 多态

    2021-01-26 16:25:03
    文章目录java —— 多态一、概要二、多态其他知识点(一)多态的好处和弊端(二)多态的转型END 一、概要 多态的概述:同一个对象,在不同时刻表现出来的不同形态; 即类类型的变量由于派生关系,可以引用各种类...
  • java-多态课堂练习

    2021-07-21 11:25:52
    java-多态课堂练习1 java-多态课堂练习2

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 157,823
精华内容 63,129
关键字:

java实现多态的方法

java 订阅