Java面向对象三大特征

Java面向对象三大特征

面向对象的三大特征:封装、继承、多态。

封装:使属性私有化,提供get、set方法;可以使类具有独立性和隔离性;

继承: 子类继承父类,拥有父类中的所有非私有特性,只支持单继承、多重继承,提高了代码的复用性;

多态:是在继承的基础上实现的,父类引用指向不同的子类对象时,调用相同的方法,呈现出不同的结果。

封装

在Java中封装性一般有如下的两种情况:

  1. 属性封装:private 属性类型 属性名称 ;

    封装属性其实就是为了不让外部直接调用类中的属性。属性封装后咱们需要提供方法供外界调用,属性在本类中是可以直接使用的。

  2. 方法封装:private 方法返回值 方法名称(参数列表){}

    封装方法其实就是为了不让外部直接调用类中的方法。此方法主要是用来让类中方法进行调用的。

案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.lvjie.entity;

public class Person { // 类名称一定要大写

// 全局变量
private String name;
private int age;
private char sex;

// 方法
public void setName(String n) {
//this.name代表全局变量,n是局部变量
this.name = n;
}

public String getName() {
return name;
}

public void setAge(int a) {
age = a;
}

public int getAge() {
return age;
}

public void setSex(char s) {
sex = s;
}

public char getSex() {
return sex;
}
}

1
2
3
4
5
6
7
8
9
10
11
12
public class Test { 

public static void main(String[] args) {
Person per = new Person();
// 给per对象的属性赋值
per.setName("张三");
per.setAge(23);
per.setSex('女');
// 获取per对象的属性输出
System.out.println("姓名:" + per.getName() + ",年龄" + per.getAge() + ",性别:" + per.getSex());
}
}

姓名:张三,年龄23,性别:女

继承

多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。

Java只支持单继承,不支持多继承,支持多重继承(继承体系)。

子类对象在实例化自己之前必须首先调用父类中的构造方法之后再调用子类自己的构造方法。

多态

多态是指多种状态,当一个操作在不同的对象时,会产生不同的结果。对象多态性其实就是在Java中一个对象可以以不同的形态出现在程序中。Java中面向对象的多态性一共就有如下的两点:

  1. 方法的重载和覆写

  2. 对象的多态性 向上转型(核心)

    对象向上转型:父类 父类对象 = 子类实例 ;

案例(对象向上转型)

向上转型
1
2
3
4
5
6
7
8
9
10
11
//Person person = new Student("张三", 23, "男", "20180201");
public static void main(String[] args) {

// 创建子类的对象
Student student = new Student("张三", 23, "男", "20180201");
System.out.println(student);

// 创建父类对象
Person person = student; // 向上转型,子类对象可以转换成父类对象
person.eat(); // 调用的学生的方法
}

姓名张三,年龄:23,性别:男,学号:20180201

我是学生,吃饭

父类对象只能调用子类覆写的父类的方法,子类自己的方法父类对象无法调用。

Java面向对象三大特征

作者

lvjie

发布于

2022-06-18

许可协议


:D 一言句子获取中...