当先锋百科网

首页 1 2 3 4 5 6 7

在Java中,抽象类和非抽象类都是基本的类类型,对于初学者来说,这两者的区别可能容易混淆。

抽象类是一种不能被实例化的类类型,意思是只能作为父类来派生其他子类,但是不能直接创建它的实例对象。抽象类修饰符是"abstract":

abstract class Animal {
public abstract void eat();
}

上面的代码定义了一个抽象类Animal,它有一个抽象方法eat(),不包含实现体,而是由它的派生类来实现。如果一个类派生自抽象类,那么它必须实现抽象方法,否则这个类也必须定义为抽象类。

非抽象类是一种可被实例化的类类型,它具有实现的方法和属性,可以被直接实例化:

class Dog {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}

上面的代码定义了一个非抽象类Dog,它有一个私有属性name和公有的setter和getter方法,可以实例化一个Dog对象,例如:

Dog mydog = new Dog();
mydog.setName("Sam");
System.out.println(mydog.getName()); // Output: Sam

总之,抽象类和非抽象类都有各自的使用场景,抽象类适用于定义一些通用的基础类(如Animal)供派生类继承和扩展,而非抽象类适用于描述具体的业务对象(如Dog)。程序员可以根据实际需要,选择适合的类类型。