JAVA面向对象编程的三大特征------封装、继承、多态

57 阅读2分钟

Java是一种面向对象的编程语言,面向对象程序设计(Object Oriented Programming,OOP)强调对象、类和封装。以下是Java面向对象开发的主要概念:

类和对象:Java中的类是对象的模板,定义了对象的属性和行为。对象是类的实例。通过类可以创建多个对象,每个对象都有自己的状态和行为。

示例代码:

// 例子:定义一个简单的类 
public class Car { 
   
   // 属性 
    String brand; 
    String model; 
    int year; 
   
   // 方法 
    void start() { 
        System.out.println("The car is starting."); 
    } 
    void drive() { 
        System.out.println("The car is in motion."); 
    } 
} 

// 创建对象 
Car myCar = new Car(); 
myCar.brand = "Toyota"; 
myCar.model = "Camry";
myCar.year = 2022; 

// 调用方法 
myCar.start(); 
myCar.drive();

上述示例展示了类的定义与对象的声明,还有对类中方法的调用,下面对Java面向对象三大特征(封装、继承、多态)进行介绍。

1、封装

封装是一种将数据(属性)和方法(行为)组合成一个单一单元的概念。在Java中,可以使用访问修饰符(如privatepublicprotected)来控制对类的成员的访问,从而实现封装的概念。以下是四种访问修饰符的区别(若不添加访问修饰符,默认修饰符为default):

修饰符当前类同一包内子孙类(同一包)子孙类(不同包)其他包
publicYYYYY
protectedYYYY/NN
defaultYYYNN
privateYNNNN

示例代码:

public class BankAccount { 
    
    // 私有属性 
    private double balance; 
    
    // 公有方法 
    public void deposit(double amount) { 
        if (amount > 0) { 
            balance += amount; 
        } 
    } 
    public double getBalance() { 
        return balance; 
    } 
}

2、继承

继承是一种机制,通过它一个类可以继承另一个类的属性和方法。被继承的类可以称之为父类、超类或者基类。而继承的类可以称之为子类。子类可以重用父类的代码,可以直接访问父类中的非私有的属性以及方法。

示例代码:

// 继承 
public class ElectricCar extends Car { 
    // 新的属性 
    int batteryCapacity; 
    // 新的方法 void charge() { 
        System.out.println("The electric car is charging."); 
    } 
}

3、多态

多态发生在继承关系中,父类定义的方法,调用时对其进行重写,即是多态。换句话说,多态允许一个对象在运行时表现出不同的行为。通过方法的重写(override)和接口实现,Java中实现了多态。

示例代码:

public interface Shape { 
    void draw(); 
} 
public class Circle implements Shape { 
    @Override 
    public void draw() { 
        System.out.println("Drawing a circle.");  
    } 
} 
public class Square implements Shape {
    @Override 
    public void draw() { 
        System.out.println("Drawing a square."); 
    } 
}