多态与抽象以及接口

继承、封装、多态、抽象是面向对象编程的四大基本特征。封装隐藏了类的内部实现机制,在不影响用户使用的前提下,改变类的内部结构,从而保护了数据。继承则是通过重写父类代码,既可以多态,也可以让代码的复用性大大提高。所谓多态,就是同一种行为,不同的对象不同的体现,java的多态弥补了其自身单一继承的缺陷。

 

多态又分为,静态多态和动态多态。

静态多态是指程序在编译时就能决定其调用的方法,也称编译时多态,说的更直接静态多态实现方式就是方法的重载。

多态多态是指程序在运行中系统多态确定方法所指的对象,也称为运行时多态,其实现方式就是靠重写父类中的同名方法,根据对象实例化后再确定。

 

多态在涉及到向上和向下转型的概念,为了提高安全性,我们通常用instanceof先做判定。

总结一下,所谓多态就是用父类类型的引用指向子类对象,在java中所有普通方法都默认是多态绑定,声明final可以避免多态绑定的开销提升性能,让JVM不用去寻找而直接执行。

 

我们用abstract来声明一个抽象类,让子类强制去重写其抽象方法,同时一样可以给子类继承非抽象方法,不用实例化也不能实例化,让代码既有复用性又能通过父类实现多态,但是并不需要在父类中写方法主体。

所谓接口,其特点是所有方法均为抽象方法,与抽象类不同的是,接口可以支持多继承多实现,接口不含构造器,接口中不能包含实例成员变量,但可以有声明为static和final的变量。

接口的出现大大弥补了java单一继承的不足,也为程序的耦合性的提升做出了巨大贡献。

 

转载于:https://www.cnblogs.com/denglu/p/5540543.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值