下面我将详细讲解“详解Java抽象类与普通类的区别”,并提供两条示例说明。
什么是抽象类?
首先,我们来了解一下什么是抽象类。抽象类是一种特殊的类,它不能被实例化,只能作为其他类的父类被继承,子类必须实现其抽象方法才能被实例化。抽象类的关键字是“abstract”。
抽象类和普通类的区别
接下来,我们来看一下抽象类和普通类的区别,主要有以下几点:
-
实例化:抽象类不能被实例化,只能作为其他类的父类被继承;普通类可以被实例化。
-
方法:抽象类可以包含抽象方法和普通方法,抽象方法只有方法签名,没有方法体;普通类只包含普通方法,有方法签名和实现。
-
继承:抽象类可以被继承,子类必须实现其抽象方法才能被实例化;普通类也可以被继承,子类可以直接实例化。
抽象类示例
下面,我们通过一个示例来理解抽象类的使用。
abstract class Shape {
int x;
int y;
Shape(int x, int y) {
this.x = x;
this.y = y;
}
abstract void draw();
}
class Circle extends Shape {
int radius;
Circle(int x, int y, int radius) {
super(x, y);
this.radius = radius;
}
@Override
void draw() {
System.out.println("Drawing circle at " + x + ", " + y + " with radius " + radius);
}
}
public class Main {
public static void main(String[] args) {
Shape shape = new Circle(10, 20, 5);
shape.draw();
}
}
在上面的示例代码中,我们定义了一个抽象类 Shape
,它包含一个抽象方法 draw
和两个属性 x
和 y
。然后我们定义了一个具体的类 Circle
,它继承自 Shape
类并实现了其抽象方法 draw
,同时还有一个额外属性 radius
。在 Main
类中我们创建了一个 Circle
的对象 shape
,然后调用 draw
方法输出 Drawing circle at 10, 20 with radius 5
。
普通类示例
下面,我们再通过一个示例来理解普通类的使用。
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
void sayHello() {
System.out.println("Hello, my name is " + name + ", I'm " + age + " years old.");
}
}
public class Main {
public static void main(String[] args) {
Person person = new Person("Tom", 25);
person.sayHello();
}
}
在上面的示例代码中,我们定义了一个 Person
类,它包含两个属性 name
和 age
,以及一个 sayHello
方法。然后在 Main
类中我们创建了一个 Person
的对象 person
,然后调用 sayHello
方法输出 Hello, my name is Tom, I'm 25 years old.
。
通过上面两个示例,我们可以进一步理解抽象类和普通类的区别。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Java抽象类与普通类的区别 - Python技术站