封装、继承、多态
封装:就是把类中的方法或者属性用private声明,封装到一起。属性的调用和赋值通过get和set方法;方法的调用可以在类创建一个公共方法,通过公共方法来调用类中的私有方法,之后通过对象调用公共方法来间接调用私有方法。
好处:隐藏对象和属性的实现细节,仅对外公开接口,数据更加安全。
继承:把A类和B类的共有属性和方法提取出来,放到一个父类中。通过继承父类来实现对属性和方法的操作。当父类只有一个有参构造器时,子类也必须要有父类全部属性的构造器,通过super()来调用哪一个构造器。
好处:提高代码的复用性和扩展性
多态: 对象或方法的多种形态,是OOP的三大特征之一,是建立在封装和继承之上。
方法多态:重写和重载
对象多态:
1、编译类型和运行类型可以不一致,编译类型一开始就定义了,不能变化
2、运行类型可以变化,可以通过getClass()查看编译类型
3、编译类型看=左边,运行类型看=右边
父类的引用指向子类的对象

输出结果为:

首先new Sub()先在堆中分配一个地址空间,假设为0x0011。里面有两个空间 count= 10,count = 20;sub指向0x0011,sub为编译类型,所以sub.count = 20,sub.display()先从本类开始找,所以输出20。Base base = sub,向上转型,编译类型为Base,运行类型还是Sub,base指向0x0011,成员看编译类型,所以base.count = 10,base.display则先从运行类型开始寻找,输出20
浙公网安备 33010602011771号