JAVA面向对象
JAVA面向对象的个人理解
*面向对象的三大特征:继承,封装,多态
1.继承:
继承使得子类拥有了父类的所有非private修饰的成员,父类和子类之间是IS-A关系,比如子类‘猫’和父类‘动物’之间关系就是‘猫’ is a ‘动物’, 那么猫就拥有了所有动物的行为和属性(吃,睡,玩)。
2.封装:
封装隐藏了类的内部实现机制,可以在不影响使用的情况下修改内不结构,同时保护了数据。
3.多态:
JAVA之所以引入多态的概念,原因之一是为了弥补其只允许单继承的不足。 JAVA与C++不同,后者允许多继承,虽然这么做极大的增强了其功能的强大性,但是其复杂的类继承关系则给开发人员带来了很大的困难,为了规避风险,JAVA仅允许单继承,这样做虽然使得继承关系简单明了,但是却给功能实现造成了限制,所以,JAVA引入了多态性来弥补不足。
方法的重写,重载和动态链接形成了多态性。
向上转型:
当我声明了一个继承自Animal类的cat类,那么我可以通过以下方式实例化:
cat c=new cat()
这样做并不难理解,但是当我这样写的时候
Animal c=new cat()
它是什么含义呢?
这就是"向上转型",将父类类型的引用指向子类,子类是父类的派生类,所以在功能上对与父类进行了改进和扩充,将父类类型的引用指向子类,那么父类就可以拥有子类更强大的功能,这样的引用也可以抽取父类的共性。
动态链接:当父类中定义了而子类没有重写的方法,父类才可以引用。当父类定义了而且在子类中重写的方法,那么父类引用时将调用子类中重写的方法,这就是动态链接。

浙公网安备 33010602011771号