考虑到知识星球的完整性,所以近期钊哥会对【Java核心基础篇】做一些内容的完善
这个小小的星球才刚刚运营了一个月,可以想象下,一年后,它的内容将会相当的丰富
来,这道题,属于基础性题目,如何大家可以结合自己的项目代码来回答会更精彩
下面,钊哥跟大家逐一来复习梳理一下
1,封装(Encapsulation)
概念: 封装是将数据(属性)和对数据的操作(方法)绑定在一起,并且对外隐藏其内部细节的过程。通过封装,对象能够控制外界对其内部状态的访问,只暴露有限的公共接口供外部调用。
应用: 例如,在Java中,我们可以通过创建一个类,并将其属性设置为私有(private),然后提供公共(getter/setter)方法来访问或修改这些属性,以此实现封装:
public class Su7Car {
private String model; // 私有属性model
private int year;
// getter 和 setter 方法
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
}
在这个例子中,Su7Car 类的 model 和 year 属性是封装的,外部只能通过 getModel() 和 setModel()、getYear()、setYear() 这些公共方法与其交互
2,继承(Inheritance)
概念: 继承,允许一个类(称为子类或派生类)从另一个类(称为父类或基类)继承属性和方法。子类不仅拥有父类的所有非私有属性和方法,还可以定义新的属性和方法,或者覆盖(override)父类的方法
应用:
public class Vehicle { // 基类/父类
protected String brand;
protected int wheels;
public void startEngine() {
System.out.println("Starting the engine...");
}
}
public class Su7Car extends Vehicle { // 子类/派生类
private String color;
public Su7Car(String brand, int wheels, String color) {
super.brand = brand;
super.wheels = wheels;
this.color = color;
}
@Override
public void startEngine() {
System.out.println("Starting the car engine...");
}
public void honk() {
System.out.println("Honking the horn...");
}
}
在这个例子中,Su7Car 类通过 extends 关键字继承了 Vehicle 类,因此 Su7Car 类的对象自动具备 Vehicle 类的属性和方法,同时添加了 color 属性和 honk() 方法,并且重写了 startEngine() 方法。
3,多态(Polymorphism)
概念: 多态是指同一个接口(也可以是类)可以被不同子类的对象所实现,从而表现出不同的行为,即一个引用变量可以根据实际赋给它的对象所属的不同类而表现出多种形态。
应用:
public abstract class Animal { // 抽象类充当接口
public abstract void makeSound();
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Woof!");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Meow!");
}
}
public class Test {
public static void main(String[] args) {
Animal myPet1 = new Dog(); // 创建Dog对象
Animal myPet2 = new Cat(); // 创建Cat对象
myPet1.makeSound(); // 输出 "Woof!"
myPet2.makeSound(); // 输出 "Meow!"
// 多态示例,Animal类型的引用指向了不同子类的对象
Animal anotherPet = new Dog();
anotherPet.makeSound(); // 根据实际对象动态决定输出"Woof!"
}
}
在这个例子中,Animal 是一个抽象类,Dog 和 Cat 都是它的子类并实现了 makeSound() 方法。在主函数中,尽管 myPet1 和 myPet2 都是 Animal 类型的引用,但它们实际引用的是不同的子类对象,所以表现出不同的行为,这就是多态的典型应用。
感谢各位小伙伴的支持,也希望星球的内容在共同的努力变得越来越丰富,帮助大家提高面试成功率!
也欢迎更多的朋友来加入星球!