上了JAVA课,老师叫我们用自己的话来解释封装,继承和多态。哈哈哈,用微笑来掩饰我的不堪。因为我只了解的比较浅。
何为封装:用书上的话来说,是面相对象的基本特征之一。将不能暴露的成员隐藏起来或用公共方法来暴露对该隐藏成员的访问。
我所理解的封装:那我们先扣字眼,封装封装,应该就是将一个东西封到类似于罐子里一样,然后在我们有需要的时候,可以从罐子里去取出来,或者永远封进罐子,别人无法拿出来。封装应该就是类似的,封装就是将成员方法,成员变量用public和private将成员变量封装在类中,public就是公共的,就是可以被访问的。而private就是私密的,就是不能被其他访问的。
那何又为继承呢?是在父类的基础上,产生子类,共用成员变量,继承相关的属性和方法。而且JAVA只支持单重基础,除了object类之外,每个类都有一个父类。如果一个类没有声明父类,则该类是object的派生类(子类)。而且一个类要被子类继承之后,里面的成员不能是private类型,因为该类型不能在类的外部使用,也就理所当然不能被子类使用了。所以一般情况下,成员变量定义为protect类型,成员函数定义为public类型。那在JAVA如何去实现继承呢?继承是通过关键字extends实现的,标准格式如下:class 子类 extends 父类 {}去实现JAVA的继承。
继承就是像儿子得到父亲的东西一样,只有父亲才会完全把所有的东西交给儿子去使用。而且有了继承,可以减少重复代码量,大大提高编写速度和计算机计算速度。但也有缺点:实现类与类的高藕合性。
执行时要先执行父类中的构造方法,再执行子类的构造方法,且子类一定会调用父类的构造方法,如果没有super调用和父类不带构造方法则编译不能通过。
多态呢?是面向对象的基本特征之一,指为不同数据类型的实体提供统一的接口。它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为。用自己的话来说,就是就父类的成员变量被子类继承之后可以变换数据类型或完成子类里的构造函数。
多态分为编译时多态和运行时多态。其中编译时多态是静态的,主要是指方法的重载。而运行时多态是动态的,它是通过动态绑定来实现的,也就是大家通常所说的多态性。