欢迎访问宙启技术站
智能推送

Java函数的多态性和封装性

发布时间:2023-06-09 11:22:11

Java是一种基于对象的编程语言,其主要的编程思想是面向对象编程。在Java中,多态性和封装性是面向对象编程的两个重要的特性。

Java函数的多态性

多态性是指同一个方法可以被不同的对象调用,产生不同的结果。在Java中,多态性可以通过两种方式实现:重载和重写。

1. 重载

重载是指在同一个类中定义多个方法,方法名相同,但是参数类型或参数个数不同。在调用重载方法时,编译器会自动根据不同的参数类型或参数个数来确定调用哪个方法。

例如,下面是一个重载的方法:

public void print(int a) {
    System.out.println("int a:" + a);
}

public void print(String s) {
    System.out.println("String s:" + s);
}

在调用这个方法时,可以这样:

print(10);
print("hello world");

分别会输出:

int a:10
String s:hello world

2. 重写

重写是指子类重新定义了父类中的方法,但是方法名、返回类型和参数类型都相同。在调用重写方法时,编译器会根据实际调用的对象类型来确定调用哪个方法。

例如,下面是一个重写的方法:

class Animal {
    public void shout() {
        System.out.println("Animal shout!");
    }
}

class Dog extends Animal {
    @Override
    public void shout() {
        System.out.println("Dog shout!");
    }
}

class Cat extends Animal {
    @Override
    public void shout() {
        System.out.println("Cat shout!");
    }
}

在调用这个方法时,可以这样:

Animal animal1 = new Animal();
Animal animal2 = new Dog();
Animal animal3 = new Cat();
animal1.shout(); // 输出:Animal shout!
animal2.shout(); // 输出:Dog shout!
animal3.shout(); // 输出:Cat shout!

Java函数的封装性

封装性是指隐藏对象的实现细节,只暴露必要的接口给其他的对象进行交互。在Java中,封装性可以通过以下方式实现:

1. private修饰符

将一个属性或方法声明为private,意味着只有在类的内部才可以访问。其他的类无法访问。

例如,下面是一个用private修饰符实现的封装的方法:

public class Person {
    private String name;
    private int age;

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

在这个例子中,只有通过调用公共的set方法才能设置name和age;只有通过调用公共的get方法才能获取name和age。

2. getter和setter方法

getter和setter方法是指提供对属性的读取和设置方法,以便其他的类可以通过这些方法访问属性。

例如,上面例子中的getName()和getAge()方法就是getter方法;setName(String name)和setAge(int age)方法就是setter方法。

总结:

多态性和封装性是Java面向对象编程的两个重要特性。多态性可以通过重载和重写实现,可以提高代码重用性和可扩展性;封装性可以通过private修饰符和getter和setter方法实现,可以保证代码安全性和可维护性。