多态 [Java]

多态

基本概念

多态主要指同一种事物表现出来的多种形态

eg:饮料表现出来的多种形态有:可乐,雪碧,红牛,脉动

多态的语法格式

父类类型 引用变量名=new 子类类型构造方法

  • 多态的语法格式也就是披着人皮的狼(站远了看是父类类型,站近了看又是子类类型)

多态的效果:

1.当父类的引用指向子类的对象时,父类的引用可以直接调用父类的独有方法

2.当父类的引用指向子类的对象时,父类的引用不能直接调用子类的独有方法(要通过强制类型转换向下转型后再调用)

3.对于父类,子类都有的非静态方法来讲,编译时调用的是父类的非静态方法,而在运行时调用的是子类的非静态方法

4.对于父类,子类都有的静态方法来讲,编译时和运行时调用的都是父类的静态方法(因为静态方法是属于类的,与对象无关)

  • 成员变量(包括非静态的和静态的变量)编译和运行都是看左边
  • 非静态的成员方法编译看左边,运行看右边
  • 静态的成员方法编译和运行都是看左边

eg:Person p=new Student();

注意: 这里的p是当做父类来用的,而不是当做子类来用的

所以就有:

1.p只能调用父类独有的属性和方法

2.p不能直接调用子类中独有的属性和方法

3.如果子类中重写了父类的方法,非静态方法调用的是子类的(编译时调用的是父类的,但在运行阶段调用的还是子类的),静态方法是调用的父类的(编译时和运行时都调用父类的)

多态的意义

多态的实际意义在于可以屏蔽不同的子类的差异性实现通用的编程,而且可以调用不同的方法带来不同的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值