今天讲了比较多的理论知识,所以我必须要总结一下。
面向对象和面向过程
类:是多个实体共同的集合
1、类是抽象的
2、以人的意识存在的
3、主观的
对象:生活中的一个实体
1、具体的
2、客观存在的
面向对象:关注的是事情的执行者是谁,做什么事,流程不管-------------------------结果不确定
面对过程:关注的是事情的执行流程是什么-------------------------------------------------结果确定
比如说执行一句话:李四老师在上课
对象:李四老师(是老师类)
关注:关注的只是对象李四老师,并不会关心李四老师是怎么上课的一个过程
Java语法格式:
定义属性:访问权限,属性类型,属性名
定义方法:访问权限,返回类型,方法名{ }
定义对象:类名 对象名=new 类名( );
面向对象(OOP)比较一下类,抽象类,接口的区别:
类是抽象的,抽象类比类更加抽象,而接口又比抽象类更加抽象。
类:有类名和普通方法。
public void study(){
}
抽象类(abstract):
1、 抽象方法,只有行为的概念,没有具体的行为实现使用,abstract 关键字修饰,并且没有方法体。
2、包含抽象方法的类,就一定是抽象类,包含抽象方法。
3、 抽象类不能直接创建实例,可以定义引用变量。
接 口 (intterface):
1、接口:全部的方法都是抽象方法,全部的属性都是常量,接口用来表示纯抽象概念,没有任何具体的方法和属性。
2、不能实例化,可以定义变量。
3、接口变量可以引用具体实现类的实例。
4、接口只能被实现(继承),一个具体类实现接口,必须使用全部的抽象方法。
抽象类和接口都不能直接通过调用构造方法来创建对象,要实现的话,在后面写方法体(匿名内部类)。
类和抽象类的关系是继承 (extends)因为类要继承抽象类里面的抽象方法,类和接口的关系是实现(implements)因为类要实现接口里面的方法,而接口和接口的关系是继承,抽象类和接口的关系是实现。
重写与重载
方法的重载(overload):方法名相同,参数(数量,类型)不同
自动转型:子类对象可以自动转换成父类类型(只能调用父类的方法)
强制转型:父类对象强制转换成子类类型
多态:同一个对象在不同情况下,表现的类型不同
同一类型的对象调用相同的方法,出现结果可能不同