【大白话说Java面试题】【Java基础篇】第24题:Java面向对象有哪些特征
第24题:Java面向对象有哪些特征
📚回答:
- 核心特征:
Java面向对象有三大特征:封装、继承和多态。
1. 封装
定义:
封装是将对象的属性和行为隐藏起来,只对外提供访问接口。简单来说,就是“把复杂的事情藏起来,只暴露简单的使用方式”。实现方式:
- 使用
private修饰符隐藏类的属性或方法。 - 提供
public的getter和setter方法来访问这些属性。
- 使用
好处:
- 提高代码的安全性:外部无法直接修改内部数据。
- 提升代码的可维护性:修改内部实现不会影响外部调用者。
💡代码示例:
以下代码展示了封装的基本实现:
classPerson{privateStringname;// 隐藏属性privateintage;// 提供公共访问接口publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}}2. 继承
定义:
继承是指一个类(子类)可以复用另一个类(父类)的功能,并在此基础上扩展新的功能。实现方式:
使用extends关键字实现继承关系。好处:
- 减少重复代码:子类可以直接复用父类的属性和方法。
- 提高代码的扩展性:子类可以在不修改父类的情况下添加新功能。
💡代码示例:
以下代码展示了继承的基本实现:
classAnimal{voideat(){System.out.println("Animal is eating");}}classDogextendsAnimal{voidbark(){System.out.println("Dog is barking");}}3. 多态
定义:
多态是指同一个方法在不同对象中表现出不同的行为。它的三个要素是:继承、重写和父类引用指向子类对象。实现方式:
- 子类重写父类的方法。
- 使用父类引用指向子类对象,调用方法时执行的是子类的实现。
好处:
- 提高代码的灵活性:同样的方法调用可以根据具体对象表现出不同的行为。
- 实现“开闭原则”:对扩展开放,对修改关闭。
💡代码示例:
以下代码展示了多态的基本实现:
classAnimal{voidsound(){System.out.println("Animal makes a sound");}}classDogextendsAnimal{@Overridevoidsound(){System.out.println("Dog barks");}}classCatextendsAnimal{@Overridevoidsound(){System.out.println("Cat meows");}}// 测试多态publicclassMain{publicstaticvoidmain(String[]args){Animalanimal1=newDog();// 父类引用指向子类对象Animalanimal2=newCat();animal1.sound();// 输出 "Dog barks"animal2.sound();// 输出 "Cat meows"}}💡面试官视角:
- 面试官可能会问“多态的应用场景是什么?”答:比如工厂模式、策略模式等设计模式都依赖多态实现灵活扩展。
- 面试官可能会追问“为什么需要重写?”答:重写是为了让子类能够根据自身需求重新定义父类的行为,从而实现多态。
📌专栏:大白话说Java面试题 — 01-Java基础篇
