JAVA学习笔记one:类与对象and面向对象和面向过程and继承性与多态性

时间:2021-11-29 21:46:42

一、类与对象

类可以理解为生活中一些对象共同点的集合、主观的、以人的意识存在的;对象则是生活中一个一个实体,是客观存在的。类具有共同特征和共同行为,例如人类有身高、体重、体重等特征,也有吃饭、睡觉、学习等行为。

1、类的基本语法

(1)一个类对应一个java文件

(2)类的属性与特征定义格式

     属性(特征):public 类型 属性名

     方法(行为):public 返回类型 方法名(参数列表){}

(3)创建对象时的格式

     类名 对象名=new 类名();

(4)调用格式

     调用属性时格式:对象名.属性名(具体内容);

     调用方法时格式:对象名.方法名(具体内容);

二、面向对象和面向过程

生活中一件事情 =  对象(执行者)+过程(执行流程)

简单说,面向对象,关注的是对象,也就是关注事情的执行者是谁,结果并不确定;面向过程,关注事情的执行流程,结果已经确定。面向对象也就相比面向过程有了更多的灵活性。例如:我写代码。面向对象关注的是“我”,而面向过程关注的是“怎么写的”,写的过程。

三、继承性与多态性

    面向对象有三大特性,分别是继承性、多态性和封装性,其中继承性与多态性是非常重要的两个特性。

在写代码的时候我们会经常碰到两个对象的属性和行为相同或类似,引用继承能有效减少书写代码的行数,减少不必要的时间、资源消耗。

1、子类可以继承到父类的所有的非私有属性和方法。继承我们可以和生活中的继承相类比,子代继承父代的财产,但子代并不能继承父代的老婆等私有的东西。同样在编写代码时,子类能继承父类public定义的属性和行为,不能继承父类private定义的属性和行为。

语法:子类extends 父类

举例: 在eclipse运行环境下创建父类Father和子类Son,并在父类Father中创建public行为GetMoney和私有行为GetFriend,并在子类Son中调用GetMoneyGetFriend方法,可以得到

 JAVA学习笔记one:类与对象and面向对象和面向过程and继承性与多态性JAVA学习笔记one:类与对象and面向对象和面向过程and继承性与多态性

 

由上图可以看到GetFriend报错,报错内容显示类型 Father 中的方法 GetFriend()不可视由此可验证子类可以继承父类的公有属性和行为,不可以继承私有属性和行为。

2、方法重写

    定义:子类重写父类的方法,方法名、参数、返回类型必须相同

    子类重写父类方法:用于覆盖父类继承过来的函数

例:创建父类Father和子类SonSon继承Father,并在子类Son中重写GetMoney方法,运行后结果为使用重写的GetMoney方法。

 

 JAVA学习笔记one:类与对象and面向对象和面向过程and继承性与多态性JAVA学习笔记one:类与对象and面向对象和面向过程and继承性与多态性JAVA学习笔记one:类与对象and面向对象和面向过程and继承性与多态性

 

3、自动转型

   子类类型的对象自动转型为父类类型的引用,最终是父类类型的

   转型后的对象:调用方法,如果子类重写了父类的方法,则调用的是重写后的,如果没有重写,则依然调用的是父类自己的

例:创建父类Father和子类SonSon继承Father,并在子类Son中重写GetMoney方法,Son类中的实例化对象代码为:Father s=new Son,将Son的对象转型为Father类型,再运行,得到:

 JAVA学习笔记one:类与对象and面向对象和面向过程and继承性与多态性JAVA学习笔记one:类与对象and面向对象和面向过程and继承性与多态性JAVA学习笔记one:类与对象and面向对象和面向过程and继承性与多态性

 

 

由此,验证上述。

4、多态性

  多个同一个类型的引用,调用同一个方法,执行的流程不一样。(详情可以参考3