当前位置:实例文章 » JAVA Web实例» [文章]面向对象进阶一(static,继承,多态)

面向对象进阶一(static,继承,多态)

发布人:shili8 发布时间:2024-11-03 07:54 阅读次数:0

**面向对象进阶一:静态成员、继承和多态**

在前面的教程中,我们已经学习了面向对象编程的基本概念,如类、对象、属性和方法。然而,面向对象编程还有一些更高级的特性,包括静态成员、继承和多态。这篇文章将深入探讨这些主题。

### 静态成员在面向对象编程中,静态成员是属于类本身,而不是具体实例的成员。换句话说,它们不依赖于任何实例的存在。静态成员可以通过类名直接访问,而不是通过实例名。

**示例代码**

class Person:
 # 静态成员变量 count =0 def __init__(self, name):
 self.name = name Person.count +=1# 创建两个Person对象p1 = Person("John")
p2 = Person("Alice")

print(Person.count) # 输出:2

在上面的示例中,我们定义了一个名为 `count` 的静态成员变量,它记录了创建的 `Person` 对象数量。每当我们创建一个新的 `Person` 对象时,`count` 都会增加。

### 继承继承是面向对象编程的一个重要特性,它允许一个类从另一个类继承属性和方法。这有助于减少代码的重复,并且可以更好地组织类之间的关系。

**示例代码**
class Animal:
 def __init__(self, name):
 self.name = name def eat(self):
 print(f"{self.name} is eating.")

class Dog(Animal):
 def __init__(self, name, breed):
 super().__init__(name)
 self.breed = breed def bark(self):
 print(f"{self.name} says Woof!")

# 创建一个Dog对象my_dog = Dog("Max", "Golden Retriever")

print(my_dog.name) # 输出: Maxmy_dog.eat() # 输出: Max is eating.
my_dog.bark() # 输出: Max says Woof!

在上面的示例中,我们定义了一个 `Animal` 类,它有一个 `name` 属性和一个 `eat()` 方法。然后,我们定义了一个 `Dog` 类,它继承自 `Animal` 类,并且添加了一个新的 `breed` 属性和一个 `bark()` 方法。

### 多态多态是面向对象编程的一个高级特性,它允许同一个方法在不同类中有不同的行为。换句话说,相同的方法名可以指向不同的实现。

**示例代码**
class Shape:
 def area(self):
 passclass Rectangle(Shape):
 def __init__(self, width, height):
 self.width = width self.height = height def area(self):
 return self.width * self.heightclass Circle(Shape):
 def __init__(self, radius):
 self.radius = radius def area(self):
 return3.14 * (self.radius **2)

# 创建一个Rectangle对象和一个Circle对象rect = Rectangle(4,5)
circ = Circle(3)

print(rect.area()) # 输出:20print(circ.area()) # 输出:28.26

在上面的示例中,我们定义了一个 `Shape` 类,它有一个 `area()` 方法。然后,我们定义了两个子类:`Rectangle` 和 `Circle`,它们分别实现了自己的 `area()` 方法。

通过继承和多态,我们可以更好地组织类之间的关系,并且减少代码的重复。这是面向对象编程的一个重要特性,它有助于我们创建更加模块化、可维护和扩展的代码。

相关标签:java开发语言
其他信息

其他资源

Top