JAVA 面向对象

一、封装
书面理解:封装就是隐藏实现细节,把对象的信息和内部的逻辑结构隐藏起来,对外提供公共的访问方式。

形象的理解:封装就是做房子的时候将房子四周包的严严实实,里面有什么东西,只有作为主人的我知道。对外提供窗户和门来访问,但他们无法知道房子里面是什么样,不知道房子内的具体细节。
所以封装的好处主要就是安全性,和复用性。
关键字 private

二、继承
继承的理解: 把多个类中相同的成员给提取出来定义到一个独立并公共的类中。然后让这多个类和该独立的类产生一个关系, 这种关系,称之为继承。
继承体现的是:is a的关系。
继承的好处:提高了代码的复用性和维护性。
继承的弊端:1.让类的耦合性增强。这样某个类的改变,就会影响其他和该类相关的类。
(原则:低耦合,高内聚。耦合:类与类的关系内聚:自己完成某件事情的能力)
2.打破了封装性
继承中的成员关系:
1.成员变量
子类的成员变量名称和父类中的成员变量名称一样时,子类的方法访问变量的查找顺序:
在子类方法的局部范围找,有就使用。
在子类的成员范围找,有就使用。
在父类的成员范围找,有就使用。
找不到,就报错。
2.构造方法
a.子类的构造方法默认会去访问父类的无参构造方法
是为了子类访问父类数据的初始化
b:父类中如果没有无参构造方法,怎么办?
子类通过super去明确调用带参构造
子类通过this调用本身的其他构造,但是一定会有一个去访问了父类的构造
让父类提供无参构造
3.成员方法
子类的成员方法和父类中的成员方法名称一样时,通过子类对象访问一个方法的查找顺序:
在子类中找,有就使用
在父类中找,有就使用
找不到,就报错
注: 1. Java中类只支持单继承
2.Java中可以多层(重)继承(继承体系)
3.子类不能继承父类的私有成员
4.子类不能继承父类的构造方法,但是可以通过super去访问
5.不要为了部分功能而去继承
关键字为 extends
格式 public class 子类名 extends 父类名 {}

三、抽象类
抽象类的理解:用abstract修饰了的类就是抽象类,抽象类主要用于一些父类不需要具体实现,只需要定义方法名,由其子类完成具体方法体的情况,同事 使用抽象类是对子类提供一种约束。
抽象类的特点:
1.抽象类和抽象方法必须用关键字abstract修饰
2.抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类
3.抽象类不能实例化
4.抽象类的子类可以是一个抽象类,此时不需要重写所有抽象方法,是一个具体类。这个类必须重写抽象类中的所有抽象方法。
抽象类的成员特点:
1.成员变量:有变量,有常量
2.构造方法:有构造方法
3.成员方法:有抽象,有非抽象
注:
1.抽象类有构造方法,不能实例化,那么构造方法有什么用?
用于子类访问父类数据的初始化
2.一个类如果没有抽象方法,却定义为了抽象类,有什么用?
为了不让创建对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值