面向对象三大特征

本文深入探讨面向对象编程的三大核心特性:封装、继承和多态。详细解析每个特性的概念、作用及实现方法,包括JavaBean规范、setter/getter方法、单继承模式、super关键字的使用,以及接口的遵从与实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 面向对象三大特征

封装 、继承 、多态

1.1 封装

1.1.1 不局限于面对对象的封装

方法的封装
工具类的封装
框架的封装


1.2 符合JavaBean规范的类封装过程

代码的规范很重要后期可以有效地提高我们的开发效率

在Java中定义符合JavaBean规范的类有什么要求
     1. 所有的成员变量全部私有化 ==> private
     2. 必须提供一个无参数构造方法
     3. 要求使用private修饰的成员变量提供对应的操作方法 ==> Setter Getter

1.2.1 private关键字

private关键字是一个权限修饰符
     private修饰的成员变量,成员方法,【构造方法】都是私有化内容,有且只能在类内使用,类外没有任何的操作权限!!!

1.2.2 Setter和Getter方法

private修饰的成员变量类外是没有任何操作权限,这里需要提供对应的操作方法,setter和getter方法

Setter方法格式:
public void set成员变量名(对应成员变量的数据类型 成员变量的形式参数) {
this.成员变量名 = 成员变量的形式参数;
}

Getter方法格式:
public 对应成员变量的数据类型 get成员变量名() {
return 成员变量;
}
如果成员变量是一个boolean类型,Getter方法有所不同
boolean methodName;
格式:

public boolean ismethodName() {
			return true or false;
		}


1.2 继承

1.2.1 Java中实现继承的方式

继承使用的关键字
extends
格式:

class A extends B {
	}

A类是B类的一个子类
B类是A类的唯一父类
Java中的继承是一个单继承模式

基本要求:
     1. 子类继承父类之后,可以使用父类的非私有化成员变量和成员方法【非私有化成员】
     2. 子类不能继承得到父类的私有化内容。

1.2.2 继承问题

父类的构造方法被调用
当我们调用子类的构造方法是,发现父类的无参数构造方法会自动调用,并且先于子类的构造方法执行,父类构造方法,初始化成员变量和方法所需的内存空间,和子类构造方法成员变量以及方法所需要的内存空间,这两个空间整体上是一个完整的对象,所以子类也可以使用父类的非私有化成员。在这里插入图片描述

1.2.3 子类会自动执行无参数构造方法

这里有一个super关键字
     1. 调用父类成员方法和成员变量的关键字。[解决就近原则问题]
     2. 用于显式调用父类的构造方法。


super关键字调用父类的构造方法
     super(实际参数);
     Java编译器会根据实际参数的数据类型,参数顺序,选择对应的父类构造方法执行,初始化父类的成员空间,方法重载机制。
特征:
     1. 如果没有显式调用父类的构造方法,默认Java编译器会调用无参父类构造方法使用
     2. 根据数据类型选择对应方法
     3. super调用构造方法,必须在当前构造方法的第一行


1.3 多态

1.3.1 多态定义

父类的引用指向子类的对象
或者说接口的引用指向遵从接口的类对象
这就是多态

1.3.2 多态的作用

1. 拓宽方法的参数范围
例如:
     方法参数为Animal类型
     可以传入Animal类型本身,或者去子类对象都可以
     方法参数为USB接口类型
     只要是直接或者间接遵从USB接口的类对象可以作为方法的参数传入
2. 拓宽方法的返回值范围
3. 简化代码开发,提高开发效率,整合数据类型


1.4 接口

1.4.1 Java中接口使用

格式:
interface 接口名 {
          成员变量
          成员方法
     }

类【遵从】接口
implements
     class 类名 implements 接口 {
}

接口中成员变量和成员方法缺省属性原因
从生活角度
USB接口规定了尺寸和连接方式,但是该接口做什么内容,是由设备决定的!!!
尺寸是固定 => 成员变量缺省属性是public static final

设备做什么事情,不管但是规定连接方式 ==> 成员方法,需要设备自己完成 缺省属性public abstract修饰

1.4.2 接口使用总结

1. 接口中的
     成员变量缺省属性 public static final
     成员方法缺省属性 public abstract

2. 一个非abstract类遵从interface接口,需要强制完成接口中所有缺省属性为public abstract的成员方法
3. 接口和接口之间,允许使用extends关键字继承,并且允许一个接口,继承多个接口
     interface A extends B, C
     生活中: 协议直接的向下兼容问题

4. 接口中可以使用default关键字修饰方法,default方法拥有方法体,可以认为是非强制实现方法,不要求遵从接口的非abstract强制实现,JDK1.8新特征

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值