【Java】面向对象的四个基本特征:唯一性、分类性、继承性 和 多态性

1.唯一性

唯一性是指每个对象都是唯一的,具有唯一标识符。

在对象的整个生命周期中,标识符是一成不变的,系统可通过该标识符,在内存中找到相应对象。

2.分类性

分类性是指将具有一致属性和行为的对象抽象成类,只保留与应用有关的性质,其他内容忽略。

任何类的划分都是主观的,但必须与具体应用有关。

3.继承性

继承性是指子类自动继承父类的属性和方法,并且可以在父类的基础上加入若干新内容。

例如,“人”这个类抽象了这个群体的基本特征,而“学生”和“老师”除了具备“人”所定义的基础特性外,各自又具有各自的新特性。

继承性是面向对象程序设计语言不同于其他语言的最重要特点。

通过类的继承,可使公共的特性能够共享,提高代码的可重用性、减少冗余,同时简化了对象、类的创建工作,规范了类的等级结构。

4.多态性

多态性是指不同对象,在收到同一消息后,可产生不同结果,具有不同表现行为。

多态性允许每个对象以自身的方法去响应共同消息,以此增强软件的灵活性和可重用性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个基于面向对象编程的学生类示例,体现了继承、封装和多态性的特: ```python class Person: def __init__(self, name, age): self.name = name self.age = age def get_name(self): return self.name def get_age(self): return self.age class Student(Person): def __init__(self, name, age, student_id): super().__init__(name, age) self.student_id = student_id def get_student_id(self): return self.student_id def __str__(self): return f"{self.get_name()} ({self.get_age()}) - Student ID: {self.get_student_id()}" class Classroom: def __init__(self): self.students = [] def add_student(self, student): self.students.append(student) def get_all_students(self): return self.students def get_student_by_id(self, student_id): for student in self.students: if student.get_student_id() == student_id: return student return None classroom = Classroom() student1 = Student("Alice", 20, "12345") student2 = Student("Bob", 21, "54321") classroom.add_student(student1) classroom.add_student(student2) for student in classroom.get_all_students(): print(student) print(classroom.get_student_by_id("12345")) ``` 在这个示例中,我们定义了一个 `Person` 类,它包含了一个人的基本信息,例如姓名和年龄。`Student` 类继承了 `Person` 类,并添加了一个学生 ID 属。我们还定义了一个 `Classroom` 类,它包含了一个学生列表,并提供了一些方法用于管理学生,例如添加学生和根据学生 ID 查找学生。 在这个示例中,我们使用了封装来隐藏类的内部细节。例如,我们使用了 `get_name` 和 `get_age` 方法来获取 `Person` 类中的姓名和年龄属,而不是直接访问这些属。这样可以确保类的内部实现细节不会被外部访问者所知道。 我们还使用了多态性来处理不同类型的对象。例如,在 `Classroom` 类中,我们可以添加任何类型的学生对象,只要它们继承自 `Person` 类。在 `Classroom` 类的 `get_student_by_id` 方法中,我们可以返回 `Student` 对象,因为它继承自 `Person` 类,并具有 `get_student_id` 方法。 继承也是面向对象编程的一个重要特。在这个示例中,我们使用 `Student` 类继承了 `Person` 类的属和方法,从而避免了代码重复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值