黑马程序员-多态

------- android培训java培训、期待与您交流! ----------
多态的体现:父类或者接口的引用指向或者接收自己的子类对象。
多态的作用:多态的出现提高了程序的扩展性和后期维护性。
多态的前提:必须是类与类之间有关系。要么继承,要么实现。要对抽象方法进行覆盖。
多态的弊端:提高了扩展性,但是只能使用父类的引用访问父类中的成员。


Animal a = new Cat();// 类型提升。向上转型。
Cat c = (Cat)a;//强制把父类的引用转成子类类型。 向下转型。
千万不要出现将父类对象转成子类类型
//Animal a = new Animal();
//Cat c = (Cat)a;
我们可以转换的是指向子类对象的父类引用,转成指向子类对象的该子类的引用。
多态自始至终都是子类在做着变化。

多态的示例:
abstract class Student
{
	abstract void study();
	abstract void sleep();
}
class BaseStudent extends Student
{
	void study()
	{
		System.out.println("base study");
	}
	void sleep()
	{
		System.out.println("base sleep");
	}
}
class AdvStudent extends Student
{
	void study()
	{
		System.out.println("adv study");
	}
	void sleep()
	{
		System.out.println("adv sleep");
	}
}
class DoStudent
{
	public void doSome(Student stu)
	{
		stu.study();
		stu.sleep();
	}
}
class  StudentDemo
{
	public static void main(String[] args) 
	{
		DoStudent ds = new DoStudent();
		ds.doSome(new BaseStudent());
		ds.doSome(new AdvStudent());
	}
}

多态中成员函数的特点:
在编译时期:参阅引用型变量所属的类中是否有调用的方法。
在运行时期:参阅对象所属的类中是否有调用的方法。
总结: 成员函数在多态调用时,编译看左边,运行看右边。


多态中成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类)。



多态中静态成员函数的特点:
无论编译和运行,都参考左边(引用型变量所属的类)。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值