阐述一下Java的重载,封装,多态,继承
时间: 2024-06-10 07:10:37 浏览: 6
Java是面向对象程序设计语言,其中有四个重要的面向对象特性:重载、封装、多态和继承。
1. 重载(Overloading)
重载是指在一个类中定义多个同名的方法,但这些方法的参数列表必须不同。在Java中,重载可以通过方法名相同、参数类型不同、参数个数不同、参数顺序不同等方式来实现。
例如,下面的代码演示了方法重载的用法:
```
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
}
```
可以看到,Calculator类中定义了两个add()方法,一个接收两个int类型参数,另一个接收两个double类型参数。这两个方法的方法名相同,但其参数类型不同,因此它们构成了方法重载。
2. 封装(Encapsulation)
封装是指将数据和方法包装在一个类中,并对外部隐藏实现细节,只暴露必要的接口。在Java中,封装可以通过访问修饰符来实现,例如private、protected和public等。
例如,下面的代码演示了封装的用法:
```
public class Person {
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;
}
}
```
可以看到,Person类中的name和age字段都被声明为private,外部无法直接访问这些字段。但是,Person类提供了public的getter和setter方法,外部可以通过这些方法来访问和修改这些字段的值。这样就可以控制外部对类的访问,从而实现了封装。
3. 多态(Polymorphism)
多态是指同一个方法在不同的对象上可以有不同的表现形式。在Java中,多态可以通过继承和接口来实现。多态的作用在于提高代码的可扩展性和复用性。
例如,下面的代码演示了多态的用法:
```
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类中定义了一个makeSound()方法,Dog和Cat类分别继承了Animal类,并分别重写了makeSound()方法。这样,当我们调用Dog和Cat对象的makeSound()方法时,它们会分别输出“Dog barks”和“Cat meows”,而不是“Animal makes sound”。
4. 继承(Inheritance)
继承是指一个类可以从另一个类继承代码和属性。在Java中,继承可以通过extends关键字来实现。
例如,下面的代码演示了继承的用法:
```
public class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
public class Dog extends Animal {
public void bark() {
System.out.println("Dog is barking");
}
}
```
可以看到,Dog类继承了Animal类,并具有eat()方法。这样,Dog对象既可以调用自己的bark()方法,也可以调用从Animal类继承而来的eat()方法。这样可以减少代码重复,提高代码复用性。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)