1.对象
面向对象与面向过程
1)两者都是一种编程思想
2)面向对象强调的是事情的结果,我们通过对象完成对应的功能
3)面向过程强调的是事情的过程,我们做任何事情,都要亲力亲为,经过每一个过程
4)Java是一门面向对象的语言
类与对象
1)定义类通过关键字class来定义,类是一类事物的抽象,它是抽象的,它是模板
2)创建对象通过new关键字触发构造函数生成,对象根据类创建出来的具体的内容
3)一个类可以创建多个对象,对象是根据类的设计来创建的,所以对象具有类的所有属性与功能
4)对象之间是相互独立的,互不影响,我们把创建对象称作为”实例化”
面向对象的三大特性:封装
1)前提:为了保证数据的安全,也为了程序的使用者能够按照我们预先设计好的方式来使用资源
2)封装属性:用private修饰我们的属性,然后为属性提供对应的getXxx和setXxx方法
3)封装方法:用private 修饰方法,被修饰的方法只能在本类中使用,所以我们在本类的公共方法里调用这个私有方法,外界如果想要使用这个私有方法的功能,只需要调用这个公共方法就可以了
面向对象的三大特性:继承
1)前提:继承可以实现程序的复用性,减少代码的冗余
2)我们通过extends关键字建立子类与父类的关系;格式:子类 extends 父类
3)继承相当于子类把父类的功能复制了一份,包括私有资源
a.虽然私有资源继承了,但是私有资源不可用,原因是被private 限制了访问,私有资源只能在本类使用
b.构造方法不能继承,原因是:构造方法要求名字是本类的类名,我们不能在子类的出现父类名字的构造方法
4)继承是可以传递的
5)Java的类是单继承的:一个子类只能有一个父类,但是一个父类可以有多个子类
6)子类在继承了父类以后,如果对父类的功能不满意,可以进行方法的重写
7)继承是一种is a的关系,强耦合,关联性特别强,而且类的继承机会只有一次
8)子类可以直接使用父类的所有非私有资源
面向对象的三大特性:多态
1)前提:为了忽略子类型之间的差异,统一看作父类类型,写出更加通用的方法
2)概念:在同一时刻,同一个对象,代表的类型不同,拥有多种形态
3)多态的要求:继承+重写
4)多态的口诀1:父类引用指向子类对象:父类型的引用类型变量保存的是子类对象的地址值
5)多态的口诀2:编译看左边,运行看右边:父类中定义的功能,子类才能使用;多态中,方法的定义看的是父类,方法的实现看的是子类重写后的功能
6)多态中资源的使用:
a.成员变量:使用的是父类的
b.成员方法:定义看的是父类,实现看的子类
c.静态资源:属于类资源,不存在重写的概念,在哪个类中定义,就属于哪个类
7)向上造型与向下造型
a.两种都属于多态,是多态的两种不同的表现形式
b.向上造型(较常用) 可以把吧托尼盖的子类型都看做是父类型
c.向下造型
a)必须得先向上造型,才能向下造型
i.子类的引用指向子类的对象,但是这个子类对象之前被看作是父类类型,所以需要强制类型转换
构造方法
1)格式:修饰符 类名当做方法名(){} 与类同名且没有返回值类型
2)构造方法作用:用于创建对象,每次new对象时,都会触发对应的构造函数
3)一个类中默认存在无参构造,如果这个构造不被覆盖的话,可以不传参数,直接创建对象
4)如果这个类中提供了其他的构造函数,默认的无参构造会被覆盖,需要手动添加无参构造
5)构造方法也存在重载的现象
super与this
1. this代表的是本类,super代表的是父类
2. 当本类的成员变量与局部变量同名时,可以通过this.变量名指定本类的成员变量,同理,当父类的成员变量与局部变量同名时,可以同过super.变量名指定本类的成员变量
总结
- 封装的作用
- 提高程序的安全性,保护数据
- 隐藏代码的实现细节
- 统一接口
- 系统可维护性增加
2.抽象类
- abstact修饰的类就是抽象类,修饰的方法就是抽象方法。
- 抽象类中可以没有抽象方法,但有抽象方法的类一定要声明为抽象类。
- 抽象类不能使用new来创建对象,它是用来让子类继承的。
- 抽象方法只有方法的声明,没有实现,让其子类实现。
- 子类继承抽象类,必须实现抽象类的所有方法,否则该子类也要声明为抽象类。
3.接口
- 普通类:只有具体实现
- 抽象类:具体实现和抽象方法都有
- 接口:只有规范,没有方法实现
- 接口的本质就是约束
- 注意点
- 接口没有构造方法,不能被实例化
- 实现类必须要重写接口中的方法
- 实现类可以实现多个接口
4.内部类
内部类是在一个类的内部再定义一个类
1. 成员内部类:可以操作外部类的私有属性及方法
2. 静态内部类:static修饰,不能访问外部类私有属性
3. 局部内部类:外部类的方法里定义的类
4. 匿名内部类:没有名字初始化类
标签:子类,多态,面向对象编程,抽象类,父类,方法,本类
From: https://www.cnblogs.com/cqwes123/p/18025044