【Java】多态

多态

什么是多态?

指的是事物的多种形态。
例如:猫是一只动物。猫是一只猫。
----------------------------------------------

多态的前提条件

要有继承或实现的关系
要有方法重写
要有父类引用指向子类对象
----------------------------------------------

多态的成员访问特点

成员变量:编译看父类、运行看父类
成员方法:编译看父类、运行看子类
----------------------------------------------

多态的好处和弊端

好处:提高代码的扩展性和维护性
弊端:无法使用子类特有的成员
----------------------------------------------

多态的使用场景
可以作为方法的参数和返回值来使用。可以提高代码的扩展性。
----------------------------------------------

多态:

main {
	Dog d = new Dog();
	method(d);

	Cat c = new Cat();
	method(c);
}
public static void method(Animal a) {
	a.eat();
}

多态的转型

向上转型:父类引用子类对象
向下转型:由父类引用转成一个对应的真实的子类对象
格式:

目标对象类型 对象名 = (目标对象类型) 被转换的引用

注意事项:一定要确保转换的类型相同。否则会发生类型转换异常:ClasCatException

关键字:instanceof
用于判断左边的引用是否是右边的对象类型

main {
	Animal a = new Dog();

	Dog d = new Dog();
	method(d);

	Cat c = new Cat();
	method(c);
}
public static void method(Animal a) {
	a.eat();

	if(a instanceof Dog) {
		Dog d = (Dog)a;
		d.lookHome();
	}else if (a instanceof Cat) {
		Cat c = (Cat)a;
		c.catchMouse();
	}
}
发布了38 篇原创文章 · 获赞 4 · 访问量 817

猜你喜欢

转载自blog.csdn.net/Hide111/article/details/105035992