我来讲解一下。
继承
继承是Java面向对象编程中的一个重要的特性。它允许我们创建一个新的类,以现有类的特性为基础,从而减少了代码的重复编写。下面是一个简单的继承示例:
public class Animal {
public void move() {
System.out.println("动物可以移动");
}
}
public class Dog extends Animal {
public void bark() {
System.out.println("狗可以吠叫");
}
}
在上面的代码中,我们创建了一个Animal类,其中定义了一个名为move()的方法。然后我们创建了一个Dog类并通过关键字extends
继承自Animal类。Dog类拥有从Animal类继承下来的move()方法,并添加了一个自己的bark()方法。
多态
多态是指同一类型的对象,拥有多种不同的形态。在Java中,多态可以通过继承和接口实现。下面是一个多态示例:
public interface Animal {
public void move();
}
public class Dog implements Animal {
public void move() {
System.out.println("狗可以跑和走");
}
public void bark() {
System.out.println("狗可以吠叫");
}
}
public class Cat implements Animal {
public void move() {
System.out.println("猫可以跳和爬");
}
public void meow() {
System.out.println("猫可以喵叫");
}
}
public class Test {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.move();
animal2.move();
}
}
在上面的代码中,我们创建了一个Animal接口和两个实现它的类,其中每个类具有不同的move()方法和自己的特性。在main()方法中,我们创建了一个Dog和一个Cat对象,并将它们赋值给Animal类型的变量,然后分别调用它们的move()方法。由于它们都是Animal类型的对象,所以我们可以将它们放在同一个数组或者集合中,实现了多态。
重载
重载(Overloading)是指在一个类中有多个相同的方法名,但参数列表不同。重载也是Java面向对象编程中的一个重要的特性。下面是一个重载示例:
public class Calculator {
public int add(int x, int y) {
return x + y;
}
public double add(double x, double y) {
return x + y;
}
}
public class Test {
public static void main(String[] args) {
Calculator calculator = new Calculator();
int sum1 = calculator.add(1, 2);
double sum2 = calculator.add(1.5, 2.5);
System.out.println("Sum of 1 and 2 is " + sum1);
System.out.println("Sum of 1.5 and 2.5 is " + sum2);
}
}
在上面的代码中,我们定义了一个Calculator类,并定义了两个重载的add()方法,这两个方法的参数列表的类型不同。在main()方法中,我们创建了一个Calculator对象,并使用它调用了不同的add()方法,根据传递的参数类型,Java会自动匹配对应的方法运行。
重写
重写(Overriding)是指在子类中重新定义了父类的方法。下面是一个重写示例:
class Animal {
public void move() {
System.out.println("动物可以移动");
}
}
class Dog extends Animal {
public void move() {
System.out.println("狗可以跑和走");
}
public void bark() {
System.out.println("狗可以吠叫");
}
}
public class Test {
public static void main(String[] args) {
Animal animal = new Dog();
animal.move();
}
}
在上面的代码中,我们创建了一个Animal类和一个Dog类,其中Dog类重写了Animal类的move()方法。在main()方法中,我们创建了一个Dog对象,并将其赋值给一个Animal类型的变量,然后调用它的move()方法,由于它是Dog类型的对象,所以调用的是Dog类的move()方法,而不是Animal类的move()方法。
以上就是Java中继承、多态、重载和重写的完整攻略及相关示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中继承、多态、重载和重写介绍 - Python技术站