当前位置: 首页 > 编程笔记 >

java 多态实例代码

寿鸣
2023-03-14
本文向大家介绍java 多态实例代码,包括了java 多态实例代码的使用技巧和注意事项,需要的朋友参考一下

多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。

多态性是对象多种表现形式的体现,比如:

在现实中,我们按下F1键这个动作:

如果当前在Flash界面下弹出的就是AS 3的帮助文档
如果当前在Word下弹出的就是Word帮助
在Windows下弹出的就是Windows帮助和支持

多态存在的三个必要条件

继承
重写
父类引用指向子类对象

Parent p = new Child();

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

例题

package Wangyi;
class Base
{
	public void method()
	  {
		System.out.println("Base");
	}
}
class Son extends Base
{
	public void method()
	  {
		System.out.println("Son");
	}
	public void methodB()
	  {
		System.out.println("SonB");
	}
}
public class Test01
{
	public static void main(String[] args)
	  {
		Base base = new Son();
		base.method();
		base.methodB();
	}
}

问这个程序的输出结果。(D)

A. Base SonB
B. Son SonB
C. Base Son SonB
D.编译不通过
解释:
Base base=new Son(); 是多态的表示形式。父类对象调用了子类创建了Son对象。
base调用的method()方法就是调用了子类重写的method()方法。
而此时base还是属于Base对象,base调用methodB()时Base对象里没有这个方法,所以编译不通过。
要想调用的话需要先通过SON son=(SON)base;强制转换,然后用son.methodB()调用。

总结

以上就是本文关于java 多态实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

 类似资料:
  • 本文向大家介绍PHP多态代码实例,包括了PHP多态代码实例的使用技巧和注意事项,需要的朋友参考一下 多态定义:只关心一个接口或者基类,而不关心一个对象的具体类。(同一类型,不同结果) 这里两个例子: 第一个,我们发现,基类定义了标准,子类进行了自我规则的实现。这是多态的一个要求。同时,这是满足重写;实际上这是不同类的不同表现;没有严格满足一个接口,或者基类编程。因为你调用的时候不是 stu->sh

  • 本文向大家介绍C++/java 继承类的多态详解及实例代码,包括了C++/java 继承类的多态详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 C++/java 继承类的多态详解 学过C++和Java的人都知道,他们二者由于都可以进行面向对象编程,而面向对象编程的三大特性就是封装、继承、多态,所有今天我们就来简单了解一下C++和Java在多态这方面的不同。 首先我们各看一个案例。 C++

  • 本文向大家介绍Java动态代理静态代理实例分析,包括了Java动态代理静态代理实例分析的使用技巧和注意事项,需要的朋友参考一下 代理模式:为其他对象提供一种代理以控制某个对象的访问。用在:在某些情况下,一个客户不想或者不能直接访问另一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用,代理对象还可以完成它附加的操作。 例子:就像房东、租客、中介的关系。中介(代理对象)为房东(真实对象)出租

  • 本文向大家介绍Java静态代码块加载驱动代码实例,包括了Java静态代码块加载驱动代码实例的使用技巧和注意事项,需要的朋友参考一下 Demo1.funx(); String s=Demo1.string; 静态代码块 会在new一个该类对象时调用 或者调用该类的静态方法,静态成员变量时调用 总之在类加载器将该类加载到内存中时 (无论是通过哪种方式) 都会调用静态代码块 静态成员变量 静态代码块永远

  • 本文向大家介绍Java多线程join方法实例代码,包括了Java多线程join方法实例代码的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是Java多线程中join方法的使用问题,以下文为具体实例。 Thread的非静态方法join()让一个线程B“加入”到另外一个线程A的尾部。在A执行完毕之前,B不能工作。例如: Thread t = new MyThread(); t.start();

  • 本文向大家介绍java 反射和动态代理详解及实例代码,包括了java 反射和动态代理详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 一、java中的反射 1.通过反射加载类的属性和方法实例代码: 2.类加载器ClassLoader 3.动态代理 静态代理:代理类和目标对象的类型都是在编译期间确定下来,不利于程序的扩展。同时每个代理类只能为一个接口服务,这样一来程序开发中必然产生过多的代理。