发表于: 2017-03-11 15:08:00
2 1473
今天完成的事情:
学习this隐式参数,并作内存分析
学习面向对象的三个基本特征之继承(继承的基本概念和方法重写)
明天计划的事情:
学习Object类的用法
收获:
1) this隐式参数
用于方法中: 普通方法中,this总是指向调用该方法的对象;构造方法中,this总是指向正要初始化的对象。
注意:this不能用于static方法
如果有两个构造方法,且它们符合方法重载。在使用this调用其它构造方法的时候,注意要将this();放置于构造方法中的第一行,如下图。Constructor call must be the first statement in a constructor.
2) 面向对象的三大基本特征:继承、封装、多态。
所谓继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力。
所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。
3) 继承(inherit)
类是对于对象的抽象,继承是对某一批类的抽象,从而实现对现实世界更好的建模;
提高代码的复用性。
4) 继承和方法重写总结:
子类继承父类,可以得到父类的全部属性和方法(除了构造方法);
Java中的类只有单继承,没有像C++那样的多继承:多继承会引起混乱,使得继承链过于复杂,系统难以维护。
Java中的多继承可以通过接口来实现;
如果定义一个类时,没有调用extends,则它的父类或基类默认为:java.lang.Object
Override
在子类中可以根据需要对从基类中继承来的方法进行重写;
重写方法必须和被重写方法具有相同的方法名、参数列表和返回类型;
重写方法不能使用比被重写方法更严格的访问权限(由于多态)
5) 练习:
从输出结果可以看出,Mammal类中的局部变量m1可以调用Animal类中的属性和方法,说明:子类Mammal继承了父类Animal。
评论