什么是面向对象?
面向对象是程序设计的一种思维模式,相比于面向过程来说,面向对象更符合人的正常思维逻辑。
在这种思维模式中,万物皆对象,这里的对象泛指的是生活中的一切事务。每种事务都有自己的属性和行为,面向对象正是从现实生活中抽象而来,将事务的属性特征和行为提取出来作为一个类,并将其实例化为对象去使用,面向对象强调的是调用一个对象的行为来实现功能,而并不关注对象行为的具体实现。
什么是类?
类是一组相关属性和行为的集合,可以看成是一类事务的模板。类是对象的模板,对象是类的实现。
比如:人类就是一个类,拥有共同的属性(头、眼睛、鼻子、耳朵)行为(走路,吃饭),小明就是一个对象,他是人类的具体实现,比如(大眼睛、高鼻子、小耳朵),他的特有行为可以是(跑步、喝粥)。
什么是对象?
对象是一类抽象事物的具体实现,也就是类的一个实例
类与对象的关系?
类是对一类事务的描述,是抽象的
对象是一类事务的具体实现,是具体的
面向对象的特征?
封装、继承、多态
封装:
通过权限修饰符,限定类成员的访问权限
权限修饰符:
private < default < protected < public
权限修饰符控制范围:
继承:
继承是以已有类为模板创建新类的方法,继承的类叫做子类,被继承的类叫做父类,子类拥有父类的全部属性和方法(在创建一个子类对象的时候,会先在内存中创建一个父类对象,然后在父类对象外部放上子类独有的属性,两者合起来形成一个子类的对象),但在父类的私有方法和属性,子类不能访问。
重写:
重写发生在子类与父类(接口)中,子类重写父类或(接口)的方法。
(1)子类方法与父类方法返回值,方法名,参数列表完全一致,
(2)权限修饰符要大于等于父类的权限
public>producted>default>private
(3)抛出的异常要小于父类方法
多态:
不同类的对象对同一消息,即同一消息可以根据发送对象的不同而采取不同的行为方式,也就是说,调用父类方法,实际上运行的子类方法,在编译时不确定,只有在运行时才知道运行的是哪个子类的方法。
条件:
1.继承
2.重写方法
3.父类的引用指向子类的对象
优点:
1.消除类型之间的耦合关系
2.可替换性
3.可扩充性
4.接口性
5.灵活性
6.简化性