封装(Encapsulation)
面向对象编程中的一个概念,指的是将数据和操作数据的方法打包到一个单独的单元中。通过封装,我们可以隐藏内部实现的细节,只提供对外部访问的接口,从而提高程序的安全性和可维护性。
在Java中,封装可以通过使用private、protected和public等访问修饰符来实现。private表示私有的,只能在同一个类中访问;protected表示受保护的,只能在同一个包或子类中访问;public表示公共的,可以在任何地方访问。
例如,我们可以定义一个Person类,封装姓名和年龄的信息:
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
继承(Inheritance)
面向对象编程中的一个概念,指的是一个类(子类)可以继承另一个类(父类)的属性和方法。子类可以继承父类的公共成员,并可以添加自己的成员。
在Java中,使用关键字extends来实现继承。子类可以通过继承父类来复用代码,并可以通过重写父类的方法来实现特定的行为。
例如,我们可以定义一个Student类,继承自Person类:
public class Student extends Person {
private String school;
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
}
多态(Polymorphism)
面向对象编程中的一个概念,指的是同一个方法调用可以有不同的实现方式。多态可以提高代码的灵活性和扩展性。
在Java中,多态可以通过继承和方法重写来实现。父类的引用可以指向子类的对象,通过父类引用调用的方法会根据实际的对象类型确定具体的实现方式。
例如,我们可以定义一个Animal类和一个Dog类和一个Cat类,都继承自Animal类:
public class Animal {
public void makeSound() {
System.out.println("Animal makes sound");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog barks");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Cat meows");
}
}
然后,我们可以创建一个Animal数组,并让其中的元素指向不同的子类对象:
Animal[] animals = new Animal[2];
animals[0] = new Dog();
animals[1] = new Cat();
for (Animal animal : animals) {
animal.makeSound();
}
输出结果为:
Dog barks
Cat meows
通过多态,我们可以用统一的方式处理不同类型的对象,提高代码的可读性和扩展性。