Java的多态理解

一、什么是多态?
多态是同一个行为具有不同表现形式或形态的能力,即对象多种表现形式的体现,就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。
二、多态的相关知识
使用多态必须满足三个必要条件:继承、重写、父类引用指向子类。
使用多态的前提条件是必须有子父类关系。
多态体现为父类变量可以引用子类对象。
定义格式:父类类型 变量名=new 子类类型();
多态是继封装、继承之后,面向对象的第三大特性。
多态可以描述为一个事物的多种形态。如Student类继承了Person类,一个Student的对象便既是Student,又是Person。
三、多态的简单例子
参考博客代码:
https://blog.csdn.net/zhangliangzi/article/details/50097179?utm_medium=distribute.pc_relevant.none-task-blog-baidulandingword-15&spm=1001.2101.3001.4242

class Father {
public String name = “father”;
//父类基本方法
public void fatherMethod()
{
System.out.println(“父类的基本方法!”);
}
//被子类覆盖方法
public void overrideMethod()
{
System.out.println(“父类被子类覆盖方法!”);
}
}
public class Child extends Father{
public String name = “child”;
//子类基本方法
public void childMethod()
{
System.out.println(“子类基本方法!”);
}
//子类覆盖父类方法
public void overrideMethod()
{
System.out.println(“子类覆盖父类方法!”);
}

public static void main(String[] args)
{
	//下面编译时类型与运行时类型相同,不存在多态
	Father father = new Father();
	System.out.println(father.name);
	father.fatherMethod();
	father.overrideMethod();
	System.out.println();
	//下面编译时类型与运行时类型相同,不存在多态
	Child child = new Child();
	System.out.println(child.name);
	child.childMethod();
	child.overrideMethod();
	System.out.println();
	//下面编译时类型与运行时类型不同,多态发生
	//父类引用指向子类对象,多态发生条件齐全
	//father2对象编译时类型是FatherClass,运行时类型是ChildClass
	Father father2 = new Child();
	//注意:与方法不同,对象的Field不具备多态性,下面输出的是父类的name
	System.out.println(father2.name);
	father2.fatherMethod();
	//多态发生,此处调用的是子类重写的方法
	father2.overrideMethod();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值