浅谈Java封装、继承、多态特性
封装
封装是面向对象编程的一个重要特性,即将数据和操作数据的方法绑定在一起,对外部程序隐藏对象的细节。Java中,可以使用访问修饰符(public、private、protected)来实现封装。
- public:可以被任何类访问。
- private:只能被当前类访问。
- protected:当前类、子类和同一个包中的类可以访问。
示例1:Animal类的封装
public class Animal {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
在这个示例中,Animal类使用private访问修饰符封装了name和age成员变量。同时,提供了public访问修饰符的getName、setName、getAge、setAge方法来操作这些成员变量,对外部程序隐藏了细节。
继承
继承是一种面向对象编程的重要特性,它允许子类继承父类的属性和方法,同时又可以增加自己的属性和方法。Java中,使用关键字extends来实现继承。
示例2:Animal类的继承
public class Dog extends Animal {
private String breed;
public String getBreed() {
return breed;
}
public void setBreed(String breed) {
this.breed = breed;
}
}
在这个示例中,Dog类继承了Animal类的属性和方法,并新增了一个breed属性和相应的get、set方法。通过继承,Dog类可以直接使用Animal类的成员变量和方法,同时也可以进行修改和新增。
多态
多态是面向对象编程的另一个重要特性,指的是同一个方法可以根据不同对象的实现方式而呈现出不同的行为形式。在Java中,多态实现方式有两种:方法重载和方法重写。
- 方法重载:同一个类中方法名称相同,但参数列表不同(个数、类型、顺序),类似于多种形式的同名方法。
- 方法重写:子类继承父类后,方法名称、参数列表均相同,但实现方式不同。
示例3:Animal类的方法重载
public class Animal {
public void eat() {
System.out.println("Animal is eating.");
}
public void eat(String food) {
System.out.println("Animal is eating " + food);
}
}
在这个示例中,Animal类中有两个方法都叫做eat,但是它们的参数列表不同。当我们调用时,编译器会根据传递的参数自动选择正确的方法。
示例4:Dog类的方法重写
public class Dog extends Animal {
@Override
public void eat() {
System.out.println("Dog is eating.");
}
}
在这个示例中,Dog类重写了Animal类的eat()方法,实现方式不同。当我们创建一个Dog对象并调用eat()方法时,会根据对象的实际类型执行不同的方法。
综上所述,Java封装、继承、多态是面向对象编程的三个重要特性,它们可以让我们构建灵活、高效的程序。在实际编程中,需要根据不同的需求和场景选择不同的实现方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈Java封装、继承、多态特性 - Python技术站