让我们开始讲解Java面向对象关键字extends继承的深入讲解。
概述
继承是面向对象编程的一个核心概念。它允许我们定义一个对象,并基于该对象定义一个新的对象,从而实现代码的重用。在Java中,我们使用关键字extends
来实现继承。
子类(派生类)继承自父类(基类)的所有非私有的属性和方法,这些属性和方法称为父类的成员。子类可以通过成员的覆盖重写,扩展或者修改从父类继承而来的成员。
语法
class Subclass extends Superclass {
// 属性和方法
}
示例说明
让我们看看两个实例,进一步了解Java的继承机制。
示例1:人类与学生类
class Person {
String name;
int age;
void eat() {
System.out.println("I am eating.");
}
}
class Student extends Person {
int grade;
void study() {
System.out.println("I am studying.");
}
}
public class Demo {
public static void main(String[] args) {
Student s = new Student();
s.name = "Tom";
s.age = 18;
s.grade = 9;
s.eat();
s.study();
}
}
在这个示例中,我们定义了两个类,Person
和Student
。Student
继承自Person
。这意味着Student
继承了Person
的属性和方法,例如name
和age
属性以及eat()
方法。
我们在main()
方法中创建了一个Student
对象s
。我们赋值name
、age
和grade
属性,然后调用eat()
和study()
方法。在这个示例中,我们已经成功地扩展了Person
类,创建了一个新的类Student
。
示例2:形状类
class Shape {
void draw() {
System.out.println("I am drawing a shape.");
}
}
class Circle extends Shape {
void draw() {
System.out.println("I am drawing a circle.");
}
}
class Rectangle extends Shape {
void draw() {
System.out.println("I am drawing a rectangle.");
}
}
public class Demo {
public static void main(String[] args) {
Shape shape1 = new Circle();
Shape shape2 = new Rectangle();
shape1.draw();
shape2.draw();
}
}
在这个示例中,我们定义了三个类,Shape
、Circle
和Rectangle
。Circle
和Rectangle
都继承自Shape
。
Shape
类有一个draw()
方法。但是,因为Circle
和Rectangle
都有不同的绘制方法,因此它们覆盖了Shape
的draw()
方法。
我们在main()
方法中创建了一个Circle
对象和一个Rectangle
对象。我们将这两个对象赋值给Shape
类型的对象shape1
和shape2
。虽然这两个对象是Circle
和Rectangle
类型的,但它们也是Shape
类型的,因为Circle
和Rectangle
是Shape
的子类。
当我们调用shape1.draw()
和shape2.draw()
方法时,会根据对象的实际类型调用相应的方法。因此,shape1.draw()
将调用Circle
类的draw()
方法,输出"I am drawing a circle.";shape2.draw()
将调用Rectangle
类的draw()
方法,输出"I am drawing a rectangle."。
结论
继承是Java面向对象编程中的一个重要概念。它允许我们创建新的类,并从已有的类中继承属性和方法。在实际应用中,继承可以使程序更加简洁和易于维护。我们必须合理地使用继承,遵循面向对象的设计原则,确保程序的可扩展性和灵活性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java面向对象关键字extends继承的深入讲解 - Python技术站