## 1. 封装(Encapsulation)
封装是将数据和操作数据的方法绑定在一起,对外部隐藏对象的具体实现细节。通过访问修饰符来实现封装。
示例代码:
```java
public class Student {
// 私有属性
private String name;
private int age;
// 公共的getter和setter方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age > 0 && age < 120) {
this.age = age;
}
}
}
```
## 2. 继承(Inheritance)
继承允许我们创建一个类作为另一个类的基础,继承父类的属性和方法。
示例代码:
```java
// 父类
public class Animal {
protected String name;
public void eat() {
System.out.println(name + "正在吃东西");
}
}
// 子类
public class Dog extends Animal {
public Dog(String name) {
this.name = name;
}
public void bark() {
System.out.println(name + "在汪汪叫");
}
}
```
## 3. 多态(Polymorphism)
多态允许我们以不同的方式执行同一个操作,包括方法重写(运行时多态)和方法重载(编译时多态)。
示例代码:
```java
// 父类
public class Shape {
public double getArea() {
return 0;
}
}
// 子类1
public class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
// 子类2
public class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width * height;
}
}
// 使用多态
public class Main {
public static void main(String[] args) {
Shape circle = new Circle(5);
Shape rectangle = new Rectangle(4, 6);
System.out.println("圆的面积:" + circle.getArea());
System.out.println("矩形的面积:" + rectangle.getArea());
}
}