面向对象
面向对象的三个基本特征是:封装、继承、多态
面向对象的思想
面向对象是一种符合人类思维习惯的编程思想。现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象映射现实中的事物,使用对象的关系描述事物之间的联系,这种思想就是面向对象。
类和对象
类
类的定义:
类是对一群具有相同特征或者行为的事物的一个统称,是抽象的
类的属性
类的属性,类的属性按使用范微分为公有属性和私有属性,类的属性范围取决于属性的名称。
公有属性:在类中和类外都能调用的属性。
私有属性:不能在类外以及类以外的函数调用。
对象
对象 是 由类创建出来的一个具体存在
对象和类的关系
1.类是抽象的,对象是具体的。类是对象的模板,对象是类的实体。
2.类只有一个,而对象可以有很多个
3.不同的对象之间属性可能会各不相同,先有类再有对象
继承
继承是面向对象软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。
1、子类拥有父类得特征,而父类没有,父类更通用,子类更具体,(特征包括属性和方法,自身的特性,拥有父类没有的)
2、使用extends继承父类,语句格式:class 子类名 extends 父类名
3、父类中一般只定义一般属性和方法(这个一般可以理解为是子类共有的,这就是父类更通用,而子类拥有其他的,所以子类更具体)
4、子类中通过super关键字来调用父构造方法
5、在子类中可以继承父类中,父类中public,protected修饰的属性,方法可以继承,private修饰的属性和方法不能被继承
6、规则: 创建子类对象的时候,首先调用的是父类的无参构造方法创建一个父类对象
7、可以在子类中显示调用父类的有参构造方法
8、如果父类的属性均为private修饰,则可以通过共有的getter,setter方法来调用
抽象类
抽象类的定义
1.包含一个以上抽象方法的类必须是抽象类。
2.抽象类和抽象方法都要使用abstract关键字声明。
3.抽象方法只需声明而不需要实现。
4.如果一个类继承了抽象类,那么该子类必须实现抽象类中的全部抽象方法。
抽象类的特点
1.抽象类和抽象方法都需要用abstract修饰;
2、抽象方法必须在抽象类中,抽象类中可以没有抽象方法;
3、抽象类不能直接创造对象(实例化);
4、抽象类的子类如果重写所有抽象方法,那么就是一个具体的类;
5、抽象类的子类不重写所有抽象方法,那么子类还是一个抽象类;
6、抽象类有构造方法,目的是让子类来调用构造方法初始化;
抽象类的作用
1、用于隐藏
对类型进行隐藏,我们可以构造出一个固定的一组行为的抽象描述,一个行为可以有任意个可能的具体实现方式。这个抽象的描述就是抽象类。
2、用于拓展对象的行为功能
这一组任意个可能的具体实现表现为所有可能的子类,模块可以操作一个抽象类,由于模块依赖于一个固定的抽象类,那么他是不允许修改的。同时通过这个抽象类进行派生,拓展此模块的行为功能。