Java面向对象的三大特型:
封装、继承、多态
封装和继承几乎都是为多态而准备的
一、封装
封装:封装也称信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,同时提供一些可以被外界访问的属性的方法(getter,setter)使其与外界发生联系。也就是说用户无需知道内部的数据和方法的具体实现细节,只需根据留在外部的接口进行操作就行。
封装目的:增强安全性和简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员。
1、属性能够描述事物的特征,方法能够描述事物的动作。封装就是把同一类事物的共性(包括属性和方法)归到同一类中,方便使用。
2、封装的优点
1) 只能通过规定的方法访问数据
2) 良好的封装能够减少耦合
3) 类内部的结构能够自我修改
4) 可以对成员进行更精确的控制
5) 隐藏信息,实现细节
3、实现
1)为了实现良好的封装,我们通常将类的成员变量声明为private,
在通过public方法来对这个变量来访问。对一个变量的操作,一般有读取和赋值2个操作,,我们分别定义2个方法来实现这2个操作,一个是getter(XX表示要访问的成员变量的名字)用来读取这个成员变量,另一个是setter()用来对这个变量赋值。
举例:
public class Student {
//对属性的封装一个人的姓名、性别、年龄、电话都是这个人的私有属性
private String name;
private String gender;
private Integer age;
private String mobile;
// setter()、getter()是该对象对外开发的接口
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
}
二、继承
继承是指将多个相同的属性和方法提取出来,新建一个父类。
Java中一个类只能继承一个父类,且只能继承访问权限非private的属性和方法。 子类可以重写父类中的方法,命名与父类中同名的属性。
继承目的:代码复用。
继承的特点:
1)继承是一种高级封装
2)子类拥有父类非private的属性和方法。
3)子类可以拥有自己属性和方法,即子类可以对父类进行扩展。
4)子类可以用自己的方式实现父类的方法。
5)是单继承。
6)不能继承父类的
成员变量和方法
构造方法
(显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器。)
非同包父类受保护类型 protected
通过访问修饰符和包进行访问权限控制

7)如果在父类中存在有参的构造方法而并没有重载无参的构造方法,那么在子类中必须含有有参的构造方法,因为如果在子类中不含有构造方法,默认会调用父类中无参的构造方法,而在父类中并没有无参的构造方法,因此会出错。
三、多态
继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
多态可以分为两种:设计时多态和运行时多态。
设计时多态:即重载,是指Java允许方法名相同而参数不同(返回值可以相同也可以不相同)。
运行时多态:即重写,是指Java运行根据调用该方法的类型决定调用哪个方法。
多态目的:增加代码的灵活度。
多态的特点:
子类拥有父类非private的属性和方法。
子类可以拥有自己属性和方法,即子类可以对父类进行扩展。
子类可以用自己的方式实现父类的方法。
多态存在的条件:继承、重写、父类引用指向子类对象。
1.自动类型转换(向上转型) :父类引用指向子类的对象
2.强制类型转换向下转型):不是将父类的对象转为子类对象(向下转型)通过instance of 运算符判定父类引用转向子类对象的实际类型 。不然会报java.lang.ClassCastException 类型转换异常。
本文深入解析Java面向对象编程的三大核心特性:封装、继承与多态。详细介绍了每个概念的目的、特点及其实现方式,帮助读者理解如何利用这些特性提高代码的复用性和灵活性。
1536

被折叠的 条评论
为什么被折叠?



