Java 封装 继承 多态(深入理解)
在Java中,封装、继承和多态是面向对象编程的三个主要特性。
封装
封装是将对象的状态(数据)和行为(方法)打包在一起,隐藏对象的内部实现细节,只提供公开的接口(getter和setter方法)供外部访问。
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = 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;
}
}
继承
继承是子类继承父类的特性(包括数据和方法),并且可以添加自己的特性。
public class Employee extends Person {
private double salary;
public Employee(String name, int age, double salary) {
super(name, age);
this.salary = salary;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
}
多态
多态是同一个行为具有多个不同表现形式或形态的能力,多态性分为编译时多态性和运行时多态性。
编译时多态是通过方法重载实现的,运行时多态是通过方法重写实现的。
// 运行时多态 - 方法重写
public class Animal {
public void makeSound() {
System.out.println("Animal makes a sound.");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog barks.");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Dog(); // 向上转型
animal.makeSound(); // 输出 "Dog barks."
}
}
以上代码展示了多态的一个简单例子。在Main
类的main
方法中,创建了一个Dog
类型的对象,但是将其向上转型为Animal
类型。调用makeSound
方法时,实际执行的是Dog
类中重写的makeSound
方法。这就是多态的一个运行时表现。
评论已关闭