Java学习回忆录-基础理论-013

本文详细探讨了Java中的多态概念,解释了如何通过子类重写父类方法实现多态,以及多态在实际编程中的应用,包括成员方法的重写和成员变量的访问特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java学习回忆录-基础理论-013

多态(提高了可扩展性)

一个事物,在不同的状态下,体现不同的形态… 这种情况称之为多态…
只跟成员方法有关系,还是子类重写了父类的这样的成员方法有关系…

1. 前提
  1. 子类继承父类 ->extends
  2. 子类重写父类的方法 ->override
2. 体现
  1. 创建子类对象. 使用父类类型接收.

    Fu fu=new Zi();
    
  2. 使用父类类型(fu)是调用子父类中都存在的方法(子类重写父类这个方法). 执行的的是子类的方法。

    clasa Fu{	
    	public void test1(){
    		syso("fu");
    	}
    }
    class Son extends Fu{
    	@Override 
    	public void test1(){
    		syso("zi");
    	}
    }
    
    Fu fu=new Son();
    	// 做什么事情, 调用test1方法. 
    fu.test1(); // 执行哪个? 执行的是子类的方法... 输出zi ... 
    
    // 集合中的多态
    //ArrayList list=new ArrayList();
    List list=new ArrayList(); // 这是多态... 就可以了, 因为多态应用广泛,一开能看懂, 看多了,自然就明白了... 	
    

多态成员特点:

成员变量
	编译
		系统看=左边 ,检查Animal an =  这个类中是否存在成员变量. 如果存在编译通过. 
	运行
		系统还是看=左边, 就会去Animal an =  这个类Animal 中去找存在这个变量,并获取值. 
	成员变量跟多态没有关系... 
成员方法(方法)
	编译
		系统看 =左边. 检查Animal an =  这个类中是否存在 这个方法. 如果存在编译通过.
		如果这个类中不存在这个方法,编译直接就报错了... 
	运行
		系统会看= 右边. 去=  new Cat()  去执行,真正创建的的这个对象的方法. 所以执行的子类重写后的方法.

多态的弊端:

如果对象发生了多态现象. 使用父类类型的对象名接受了子类对象. 不能访问子类自己特有的属性(成员变量)和成员方法了
弊端. 多态下,无法访问子类自己特有的属性.
弊端, 多态下, 对象也无法访问子类自己特有的行为
如果就是需要使用导子类特有的属性和行为. 可以使用转型向下转型.变回来 (变形记)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值