Day12

本文详细介绍了Java中的多态性,包括方法的重载(overloading)和重写(overriding)。方法重载发生在同一类中,而重写发生在继承关系的子类中。对象的多态性涉及向上转型和向下转型,前者允许父类引用指向子类对象,后者则需要显式转换。此外,`instanceof`关键字用于判断对象的运行类型,确保安全的类型转换。文章通过实例代码展示了这些概念的实际应用。
摘要由CSDN通过智能技术生成

 1.方法的多态

1.1方法重载

重载再同一个类中

1.2方法重写

重写必须是继承下的子类重写父类的方法

2. 对象的多态

2.1向上转型

本质就是:父类的引用指向子类对象

语法格式:

​    父类  父类引用 =  new  子类();

将子类的对象赋值给了父类的引用。小范围(子类) 转为大范围(父类)自动转

父类的引用可以调用父类的所有成员方法,可以调用子类的重写父类的方法,但是不能调用子类独有的方法。

2.2向下转型

语法格式:
父类类型 父类引用 = new  子类();
子类类型 子类引用 = (子类类型)父类的引用;向下转型
 

需要强转
为了避免方法写死,可以new object object 作为形参,
赋值的时候完成向上转型
object  =   "狗蛋“
object object = new String   "狗蛋"
然后向下转型
String str = (String) object

3.instanceof关键字

比较操作符,返回值是布尔类型的数据

语法格式:

```
对象引用  instanceof  运行类型

```

用来判断对象的运行类型(=右边), 是否是xx类型或者xx类型的子类

目的是为了在强转的时候不出现问题

package com.qfedu.e_instanceof;

class AA {}
class BB extends AA {}
public class Demo1 {
	public static void main(String[] args) {
		BB bb = new BB();
		BB bb1 = new BB();
		AA aa = new AA();
		//instanceof  的左边放的对象的引用,右边是类
		System.out.println(bb instanceof BB);//true
		System.out.println(bb1 instanceof BB);//true
		//判断对象bb是否是AA的对象或者子类的对象
		System.out.println(bb instanceof AA);//true
		System.out.println(aa instanceof AA);//true
		System.out.println(aa instanceof BB);//false
		//总结: 左边 的辈分小(对象的引用)  右边辈分大(类)  屡试不爽
		AA aa2 = new BB();
		System.out.println(aa2 instanceof AA);//true
		System.out.println(aa2 instanceof BB);//true
		
		//
		Object object = new Object();
		System.out.println(object instanceof AA);//false
		System.out.println(object instanceof Object);//true
		
		String string = "qwer";
		System.out.println(string instanceof Object);//true
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值