面向对象基础知识整理

1、什么是对象? 什么是类?

对象是可以看的见摸得着的,对象可以是任何东西,比如水杯,书,手机等。准确的说,对象是一个自包含的实体,用一组可识别的特性和行为标识的。

类就是具有相同的属性和功能的对象的抽象集合。

实例,就是一个真实的对象。比如说‘人’这个对象,就是’人‘类的实例了。而实例化就是创建对象的过程,使用new关键字来创建的。

2、构造方法

构造方法,又叫构造函数,其实就是对类进行实例化。构造方法与类名同名,无返回值,也不需要void,在new时候调用。

3、方法重载

方法重载提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型。

方法重载时,两个方法必须要方法名相同,单参数类型或者个数必须要有所不同。

好处,在不改变原方法的基础上,新增功能(方法名相同)。

4、属性与修饰符

属性是一个方法或一对方法,但在调用他的代码看来,他是一个字段,即属性适合于以字段的方式使用方法调用的场合。

字段是存储类需要满足其设计所需要的数据,字段是与类相关的变量。

public表示它所修饰的类成员可以允许其他任何类来访问,俗称公有的。而private表示值允许同一个类中的成员访问,其他类包括它的子类无法访问,俗称私有的。

通常字段都是private,即私有变量,而属性都是public,即公有的变量。 

5、面向对象三大特性

封装:每个对象都包含它能进行操作所需要的所有信息,这个特性称为封装,因此对象不必依赖其他对象来完成自己的操作。

继承:对象的继承代表了一种‘is-a’的关系,如果两个对象A和B,可以描述为B是A,这表明B可以继承A。继承者还可以理解为是对被继承者的特殊化,因为除了具备被继承者的特性外,还具备自己独有的个性。继承定义了类如何相互关联,共享特性。继承的工作方式是,定义父类和子类,或叫做基类和派生类,其中子类继承父类的所有特性。子类不但继承了父类的所有特性,还可以定义的新的特性。

如果子类继承父类,第一 子类拥有父类非private的属性和功能;第二 子类具有自己的属性和功能,及子类可以扩展父类没有的功能和属性;第三 子类可以重写父类的方法。

protected表示继承时子类可以对基类有完全访问权。

继承是有缺点的,那就是父类变,子类也要跟着改变。继承显然是一种强耦合的关系。

多态:第一 子类以父类的身份出现 第二 子类在工作时以自己的工作方式实现 第三 子类以父类的身份出现时,子类特有的属性和方法不可以使用。

6、抽象类

抽象类需要注意几点,第一 抽象类不能被实例化。第二 抽象类的方法必须被子类重写,不然没有任何的存在意义。第三 如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其他一般方法。

抽象类拥有尽可能多的共同代码,拥有尽可能少的数据。

因为抽象类是一个概念,它提供一个继承的出发点,当设计一个新的抽象类时,一定是用来继承的,所以,在一个以继承关系形成的顶级结构里面,树叶节点应当时具体类,而树枝节点均应当时抽象类。也就是说,具体类不是用来继承的。

7、接口

接口十八隐式公共方法和属性组合起来,以封装特定功能的一个集合。一旦类实现了接口,类就可以支持接口所制定的所有属性和成员。接口不允许提供任何成员的执行方式。

实现接口的类就必须要实现接口中的所有方法和属性。

抽象类可以给出一些成员的实现,接口却不包含成员的实现,抽象类的抽象成员可被之类部分实现,接口的成员需要实现类完全实现,一个类只能继承一个抽象类,但可实现多接口。

类是对对象的抽取,抽象类是对类的抽取,接口是对行为的抽象。

如果行为跨越不同类的对象,可以使用接口;对于一些相识的类对象,用继承抽象类。

从设计角度讲,抽象类是从子类中发现了公共的东西,泛化出父类,然后子类继承父类,而接口是根本不知子类的存在,方法如何实现还不确认,预先定义。

抽象类是自底而上抽象出来的,而接口则是自顶向下设计出来的。

原文地址:https://www.cnblogs.com/zkjblogs/p/6582885.html