多态的笔记

多态是编程中的一个重要概念,允许父类引用指向子类对象,调用同一方法得到不同结果。实现多态需要继承体系、方法重写以及向上转型。然而,多态无法访问子类特有属性,需通过向下转型解决。多态在数组存储、方法参数和返回值等方面有广泛应用,但要注意静态、final和private方法不能被重写。
摘要由CSDN通过智能技术生成

多态

## 编程中的多态
	一个父类根据new不同的子类对象,调用同一个方法,可以产生不同的结果
	父类 = new 子类对象();
	
	# 多态的前提(全部满足以下条件)
		1.必须有继承体系
		2.必须有方法的重写
		3.必须使用一种写法:向上转型  父类 对象名 = new 子类对象();
	
	# 验证多态性
		根据new不同的子类对象,调用同一个重写的方法,产生不同结果

	# 多态的弊端
		无法调用子类特有的属性和方法
		解决方案:向下转型
	
	# 向上转型:父类引用 指向子类对象
	# 向下转型:将子类对象重新 “强转” 回自己本身的类型
		1.((Cat)an).jiao();
		2.Cat c = (Cat)an;
		  c.jiao();
		
		运算符:A instanceof B  判断A对象在内存是否是B类型

## 多态的应用
	# 当数组中存储的是父类的类型时,所有的子类对象都能存在该数组中
	# 当一个方法的参数类型是父类的类型时,所有的子类对象都能传参
	# 返回值时父类的类型。所有的子类对象都会返回出来

## 多态注意事项
	# 多态是方法的多态,属性没有多态
	# 父类和子类,有联系   类型转换异常! ClassCasException!
	# 存在条件:继承关系,方法需要重写,父类引用指向子类对象!Father f1=new Son();
 # 不能重写的方法:
	static方法,属于类,不属于实例
	final 常量;
	private方法;
	
## instanceof (类型转换) 引用类型,判断一个对象是什么类型~
	# System.out.println(X instanceof Y);//判断X和Y是否有父子关系,没有就报错
	
##
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值