多态与泛型

本文探讨了Java中的多态性,包括方法的重载和重写,以及类之间的继承多态。着重讲解了向上转型和向下转型的概念,并通过示例解释了为什么在某些情况下会出现运行时异常。此外,还介绍了`instanceof`关键字的用途。最后,文章讨论了泛型的重要性,如类型安全和提高效率,并展示了如何在类、接口和数组中使用泛型。
摘要由CSDN通过智能技术生成

多态与泛型

1.多态的理解和使用:

多态自我理解就是同种调用的不同结果表现

1) 方法的多态性:包括重载和重写(其实重写就是为了下面类之间继承的多态)

2)类之间继承的多态

重载和重写已经在之前的文章中学习过了,下面是类的多态:

class animal{
	public void eat(){
		System.out.println("animal.eat()");
	}
}
class cat extends animal{
	public void eat(){
		System.out.println("cat.eat()");
	}
}
class dog extends animal{
	public void eat(){
		System.out.println("dog.eat()");
	}
}
public class abs{
	/*方法1*/
//	public static void toEat(cat cat){
//		cat.eat();
//	}
//	public static void toEat(dog dog){
//		dog.eat();
//	}
	/*方法2*/
	public static void toEat(animal animal){
		animal.eat();
	}
	public static void main(String[] args) {
		toEat(new cat());
		toEat(new dog());
	}
}
想调用cat和dog子类的eat方法,如果使用方法1的话,要用到两个静态方法,如果有很多子类的话这是不可行的;如果使用方法2的话,参数是父类,只需要用一个方法即可

2.向上转型和向下转型

上述的类多态性使用实际上用到了向上转型;下面是向上转型和向下转型的使用:

class animal{
	public void eat(){
		System.out.println("animal.eat()");
	}
	public void sleep(){
		System.out.println("animal.sleep()");
	}
}
class cat extends animal{
	public void eat(){
		System.out.println("cat.eat()");
	}
	public void breath(){
		System.out.println("cat.breath()");
	}
}
public class abs{
	public static void main(Strin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值