一、类与对象
类可以理解为生活中一些对象共同点的集合、主观的、以人的意识存在的;对象则是生活中一个一个实体,是客观存在的。类具有共同特征和共同行为,例如人类有身高、体重、体重等特征,也有吃饭、睡觉、学习等行为。
1、类的基本语法
(1)一个类对应一个java文件
(2)类的属性与特征定义格式
属性(特征):public 类型 属性名
方法(行为):public 返回类型 方法名(参数列表){}
(3)创建对象时的格式
类名 对象名=new 类名();
(4)调用格式
调用属性时格式:对象名.属性名(具体内容);
调用方法时格式:对象名.方法名(具体内容);
二、面向对象和面向过程
生活中一件事情 = 对象(执行者)+过程(执行流程)
简单说,面向对象,关注的是对象,也就是关注事情的执行者是谁,结果并不确定;面向过程,关注事情的执行流程,结果已经确定。面向对象也就相比面向过程有了更多的灵活性。例如:我写代码。面向对象关注的是“我”,而面向过程关注的是“怎么写的”,写的过程。
三、继承性与多态性
面向对象有三大特性,分别是继承性、多态性和封装性,其中继承性与多态性是非常重要的两个特性。
在写代码的时候我们会经常碰到两个对象的属性和行为相同或类似,引用继承能有效减少书写代码的行数,减少不必要的时间、资源消耗。
1、子类可以继承到父类的所有的非私有属性和方法。继承我们可以和生活中的继承相类比,子代继承父代的财产,但子代并不能继承父代的老婆等私有的东西。同样在编写代码时,子类能继承父类public定义的属性和行为,不能继承父类private定义的属性和行为。
语法:子类extends 父类
举例: 在eclipse运行环境下创建父类Father和子类Son,并在父类Father中创建public行为GetMoney和私有行为GetFriend,并在子类Son中调用GetMoney和GetFriend方法,可以得到
由上图可以看到GetFriend报错,报错内容显示类型 Father 中的方法 GetFriend()不可视由此可验证子类可以继承父类的公有属性和行为,不可以继承私有属性和行为。
2、方法重写
定义:子类重写父类的方法,方法名、参数、返回类型必须相同
子类重写父类方法:用于覆盖父类继承过来的函数
例:创建父类Father和子类Son,Son继承Father,并在子类Son中重写GetMoney方法,运行后结果为使用重写的GetMoney方法。
3、自动转型
子类类型的对象自动转型为父类类型的引用,最终是父类类型的
转型后的对象:调用方法,如果子类重写了父类的方法,则调用的是重写后的,如果没有重写,则依然调用的是父类自己的
例:创建父类Father和子类Son,Son继承Father,并在子类Son中重写GetMoney方法,Son类中的实例化对象代码为:Father s=new Son,将Son的对象转型为Father类型,再运行,得到:
由此,验证上述。
4、多态性
多个同一个类型的引用,调用同一个方法,执行的流程不一样。(详情可以参考3)