面向对象
-
面向对象的三大特性:封装,继承,多态。
-
类和对象的概念
(1) :什么是类?
- 类在现实世界当中是不存在的,是一个模板,是一个概念。是人类大脑思考抽象的结果。
- 类代表了一类事物。
- 在现实世界当中,对象A与对象B之间具有共同特征,进行抽象总结出一个模板,这个模板被称为类。
- 类{
属性://描述对象的状态信息;
方法://描述对象的动作信息;
}
(2):什么是对象?
- 对象是实际存在的个体,现实世界当中实际存在。
(3):关系;类描述的是对象的共同特征,例如身高特征,这个身高特征在访问的时候,必须先创建对象,通过对象去访问这个特征‘ - 类—>【实例化】–>对象
- 对象又被称为实例/instance
- 对象–>【抽象】–>类
比如:小猫是一个类,你怀里一只英短就是对象。
(3):类的定义:
属性通常是采用一个变量的形式来完成定义的。
//定义一个类,类名Student
//Student是一个类,代表所有的学生对象
public class Student{
//属性【描述的是对象的状态信息】,通常采用变量的方法来定义
//在类体当中,方法体之外定义的变量被称为成员变量
int sid;
String name;
boolean sex;
int age;
}
- 面向对象和面向过程的区别
继承
1.继承的作用:
1)基本作用:子类继承父类,代码可以得到复用。 (这个不是重要的作用,是基本作用)
2)主要(重要)作用:因为有了继承关系,才有了后期的方法覆盖和多态机制。
2.继承的相关特性:
1)B类继承A类,则称A类为超类(superclass)、父类、基类;B类则称为子类(subclass)、派生类、扩展类class。平时说的比较多的是:父类和子类。
2)java 中的继承只支持单继承,不支持多继承,c++中支持多继承,这也是 java体现简单性的一点,换句话说,java 中这样写代码是错误的:class Bextends A,C
3)虽然 java 中不支持多继承,但有的时候会产生间接继承的效果,例如:class C extends B,class B extends A
,也就是说,c直接继承B,其实c还间接继承A
4)java 中规定,子类继承父类,除构造方法不能继承之外,剩下都可以继承,但是私有的属性无法在子类中直接访问。(父类中private修饰的不能在子类中直接访问,可以通过间接的手段来访问。)
5)java中的类没有显示的继承任何类,则默认继承 object类,object类是java 语言提供的根类(老祖宗类),也就是说,一个对象与生俱来就有objeot类型中所有的特征。
6)继承也存在一些缺点,例如:CreditAccount 类继承 Account 类会导致它们之间的合度非常高,Account 类发生改变之后会马上影响到 CreditAccount 类