继承、封装、多态、抽象是面向对象编程的四大基本特征。封装隐藏了类的内部实现机制,在不影响用户使用的前提下,改变类的内部结构,从而保护了数据。继承则是通过重写父类代码,既可以多态,也可以让代码的复用性大大提高。所谓多态,就是同一种行为,不同的对象不同的体现,java的多态弥补了其自身单一继承的缺陷。
多态又分为,静态多态和动态多态。
静态多态是指程序在编译时就能决定其调用的方法,也称编译时多态,说的更直接静态多态实现方式就是方法的重载。
多态多态是指程序在运行中系统多态确定方法所指的对象,也称为运行时多态,其实现方式就是靠重写父类中的同名方法,根据对象实例化后再确定。
多态在涉及到向上和向下转型的概念,为了提高安全性,我们通常用instanceof先做判定。
总结一下,所谓多态就是用父类类型的引用指向子类对象,在java中所有普通方法都默认是多态绑定,声明final可以避免多态绑定的开销提升性能,让JVM不用去寻找而直接执行。
我们用abstract来声明一个抽象类,让子类强制去重写其抽象方法,同时一样可以给子类继承非抽象方法,不用实例化也不能实例化,让代码既有复用性又能通过父类实现多态,但是并不需要在父类中写方法主体。
所谓接口,其特点是所有方法均为抽象方法,与抽象类不同的是,接口可以支持多继承多实现,接口不含构造器,接口中不能包含实例成员变量,但可以有声明为static和final的变量。
接口的出现大大弥补了java单一继承的不足,也为程序的耦合性的提升做出了巨大贡献。
时间: 2024-10-13 22:47:29