Java面向对象(OOP)

说到面向对象就要先说下向像对象和面向过程的区别:

        举个例子:想要从寝室去几十公里外的图书馆看书

面向对象:实现一个功能,不关心具体的实现步骤,只关心结果,找一个具有该功能的类,帮我们做事。

        例:从寝室出发—>打滴滴出租车—>告诉司机终点—>到达

        面向对象:强调步骤

面向过程:的那个要实现一个功能,需要亲力亲为,处理每一个细节

                例:从寝室出发—>看地图确认方向路径—>找合适的路径去,坐公交—>下车—>转公交—>到站下公交—>步行到达

        面向过程:强调对象,这里的对象就是滴滴出租车

Java语言有三大特性:封装、继承、多态。

封装:主要是将类中的部分代码实现细节隐藏、封装起来,不直接对外提供访问;

继承:在多态中必须存在有继承关系的子类和父类。

多态:同一行为,有多个不同表现形式

封装的概述

封装的基本使用:1.使用private关键字来修饰类的成员(成员变量和成员方法)以及类

          2.需要使用封装的成员变量,只能通过对应的getxxx方法和setxxx方法(get获取,set设置)

               3. private修饰的成员方法,只允许本类的方法条用;

              4. private修饰的类,只能作为内部类使用

private是一个权限修饰符,代表最小权限(其他权限修饰符包括public(公开的)、protected(保护的)、default(默认)、 private),只能在同一个类下访问。

继承的概述

在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的

如:

父类——father

public class father{

。。。

}

继承父类(father)的子类(son )

public class son extends father{

}

继承的好处:

提高代码的复用性。

类与类之间产生了关系,是多态的前提

继承后的特点:

子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键 字,修饰父类成员变量,类似于之前学过的 this 。

1、成员方法不重名
如果子类父类中出现不重名的成员方法,这时的调用是没有影响的。
调用方法时,先在子类中查找有没有对应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法。
2、成员方法重名
如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,并且分为两种情况。
如果子类出现与父类重名方法,但是方法参数不同,这种情况属于方法重载;
如果子类出现与父类重名方法,同时方法参数也相同,这种情况叫做方法重写Override。
方法重写 :子类中出现与父类一模一样的方法时(方法名和参数列表都相同,重写的返回值类型相同或者是父类方法的子类),会出现覆盖效果,也称为重写或者复写。

注意事项: 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。 子类方法覆盖父类方法,方法名和参数列表都要一模一样。 子类方法覆盖父类方法,返回值类型可以与父类保持一致,或者返回父类返回值的子类。 私有方法不是不能继承,而是无法访问,所以不能重写。

抽象类:由抽象方法的类一定是抽象类,但抽象类不一定有抽象方法

多态:下一篇

おすすめ

転載: blog.csdn.net/liugaoyuans/article/details/120227591