JAVA 继承基本类、抽象类、接口介绍
在JAVA编程中,继承是一种重要的代码复用机制。通过继承,子类可以继承父类的属性和方法。JAVA中主要有三种继承方式:继承基本类、继承抽象类、实现接口。本文将为您详细讲解继承这三种方式的特点、应用场景和示例。
继承基本类
继承基本类也称作“普通继承”。基本类是指没有被定义为抽象的类。通过普通继承,子类可以继承父类的非私有属性和方法。继承后,子类可以扩展父类的功能,也可以重写父类的方法。
示例:
public class Animal {
private String name;
Animal(String name) {
this.name = name;
}
public String getName() {
return name;
}
public String getType() {
return "普通动物";
}
public void run() {
System.out.println(getName() + "在奔跑");
}
}
public class Dog extends Animal {
Dog(String name) {
super(name);
}
@Override
public String getType() {
return "犬科动物";
}
public void bark() {
System.out.println(getName() + "在吠叫");
}
}
public class Test {
public static void main(String[] args) {
Dog dog = new Dog("旺财");
System.out.println(dog.getName() + "是" + dog.getType());
dog.run();
dog.bark();
}
}
上述代码中,Animal是基本类,Dog是子类。Dog继承Animal,可以获取Animal的name和run()方法,并在此基础上扩展了一个bark()方法,并重写了getType()方法。
继承抽象类
继承抽象类是JAVA中一种常用的继承方式。抽象类是不能被实例化的,只能被继承。抽象类中包含抽象方法(没有实现的方法)和非抽象方法(有实现的方法)。子类必须实现所有抽象方法,否则子类也必须是抽象类。通过抽象类,可以将一些通用的操作和逻辑放在抽象类中,子类只需要关注与自身相关的方法和属性。
示例:
public abstract class Animal {
private String name;
Animal(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void run() {
System.out.println(getName() + "在奔跑");
}
public abstract String getType();
}
public class Dog extends Animal {
Dog(String name) {
super(name);
}
@Override
public String getType() {
return "犬科动物";
}
public void bark() {
System.out.println(getName() + "在吠叫");
}
}
public class Test {
public static void main(String[] args) {
Dog dog = new Dog("旺财");
System.out.println(dog.getName() + "是" + dog.getType());
dog.run();
dog.bark();
}
}
上述代码中,Animal是抽象类。将getType()方法定义为抽象方法,子类必须实现。Dog继承Animal,必须实现getType()方法。在此基础上,Dog扩展了一个bark()方法。
实现接口
实现接口是JAVA中一种常用的代码复用方式。接口是抽象方法的集合,其所有方法都是抽象的。实现接口可以使子类具有某些特定功能。因为JAVA中不支持多继承,所以实现接口成为代码复用的重要方式。
示例:
public interface Animal {
public String getName();
public String getType();
public void run();
}
public class Dog implements Animal {
private String name;
Dog(String name) {
this.name = name;
}
@Override
public String getName() {
return name;
}
@Override
public String getType() {
return "犬科动物";
}
@Override
public void run() {
System.out.println(getName() + "在奔跑");
}
public void bark() {
System.out.println(getName() + "在吠叫");
}
}
public class Test {
public static void main(String[] args) {
Dog dog = new Dog("旺财");
System.out.println(dog.getName() + "是" + dog.getType());
dog.run();
dog.bark();
}
}
上述代码中,Animal是接口,定义了getName()、getType()、run()三个抽象方法。Dog实现Animal接口,并实现了接口中的所有方法,在此基础上扩展了一个bark()方法。
总的来说,继承是JAVA中重要的代码复用机制,能够减少代码冗余,提高代码的可读性和可维护性。不同的继承方式可以适应不同的场景,通过灵活运用,可以编写出高效、易维护的JAVA程序。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA 继承基本类、抽象类、接口介绍 - Python技术站