一.面向对象的思想
思想特点:
- 让复杂的事情简单化
- 更加符合我们的思想
- 让我们从执行者变成指挥者
概述:
Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下, 使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面 向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算 机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。面向对象的语言中,包含了三大基本特征,即封装、继承、多态。
二.类和对象的概念
1.类(Class)是人们对于客观事物的高度抽象,面向对象方法中的类是一种类型,它是具有相同属性和行为的对象的集合。类是具有相同属性和行为的若干对象的模板。类为属于该类的全部对象提供了抽象的描述,这种描述包括了属性和行为两大部分。
- 属性:就是该事物的状态信息。
- 行为:就是该事物能够做什么。
2.对象(Object)是一个应用系统中的用来描述客观事物的实体,是有特定属性和行为(方法)的基本运行单位。可以概括来说:万物皆对象。
3.类与对象的关系
(1)类是对一类事物的描述,是抽象的。
(2)对象是一类事物的实例,是具体的。
(3)类是对象的模板,对象是类的实体
三.继承
继承是子类调用父类的属性和方法。在Java中通过extends关键字实现;子类不能继承父类private的特性和构造方法;继承之后子类可以重新实现父类的方法,那么调用的时候就是调用的子类重写的方法;Java中只能是单继承的,一个类只可以有一个父类,一个父类可以有多个子类,实例化子类对象时默认优先调用父类。
注:String类是被final修饰的类型,final类是不能被继承的,String类是不可变类型(Immutable)类。
- Super和this的含义:
super:代表父类的存储空间标识(可以理性为父亲的引用)。
this:代表当前对象的引用(谁调用就代表谁)。
-
Super和this的不同:
代表对象不同:
This:子类调用对象
Super:父类对象的引用
前提:
This:没有继承也可以使用
Super:只有继承了才能用
构造方法:
This();子类的构造
Super();父类的构造
继承的目的:父母的被子女继承,表示父母的归属到子女
继承的机制:首先分析多个类的共同特征,把相同的特征和行为抽离出来形成一个基类,可以让这些类继承基类,而不需要在类本身中再定义相同的属性和行为
四.抽象类
抽象类:使用abstract关键字进行修饰的类叫做抽象类
1.抽象类里面不是必须有抽象方法
2.一个类里面有抽象方法,这个类必须是抽象类
抽象方法:
1.方法只有声明没有方法体;
//声明即规定方法三要素:方法名、参数列表、返回值类型
2.要使用abstract关键字进行修饰
抽象类的特点:
1.抽象类用abstract关键字来定义
2.定义中含有抽象方法的类叫做抽象类
3.抽象类不能实例化
4.可以有具体方法,可以没有抽象方法
// Animal类
public abstract class Animal {
public void sleep() {
System.out.println("我趴着睡");
}
public abstract void eat();
}
// Dog类
public class Dog extends Animal {
public Dog() {
super();
}
@Override
public void eat() {
System.out.println("我实现了父类方法,狗吃肉");
}
}
// Cat类
public class Cat extends Animal{
public Cat() {
super();
}
@Override
public void eat() {
System.out.println("我实现了父类方法,猫吃鱼");
}
}
//测试类
public class AnimalTest {
public static void main(String[] args) {
Animal a1 = new Dog();
a1.sleep();
a1.eat();
System.out.println("-------------------------");
Animal a2 = new Cat();
a2.sleep();
a2.eat();
}
}
我趴着睡
我实现了父类方法,狗吃肉
-------------------------
我趴着睡
我实现了父类方法,猫吃鱼
五.接口
- 接口是一种“引用数据类型”编译后是一个class字节码文件
- 接口是完全抽象的,是无法实例化
- 接口支持多继承,一个继承可以继承多个接口
- 接口包含两部分:常量 抽象方法
- 接口中的方法都是抽象方法,所以接口中的方法不能有方法体
- 一个类可以实现多个接口
- 类和类之间叫做继承,类和接口之间叫做实现
六.多态
多态:是指同一行为,具有多个不同表现形式。(调用同样的方法,执行的是不同的功能)
1.继承口情况
2.在子类中对方法进行了重写
3.父类引用指向子类对象父类类型变量名=new 子类对象Q;
多态的好处:在开发中可以把父类(接口类型)类型定义为方法的形参,在实际调用的时候传入的实际参数就比较灵活,可以传入父类类型的对象,也可以传入任意一个子类类型的对象
多态:
1.继承或者实现【二选一】
2.方法的重写【意义体现:不重写,无意义】
3.父类引用指向子类对象【格式体现】