面向对象
面向对象编程(OOP):Java是一种面向对象的编程语言,它支持封装、继承和多态等OOP的核心概念,使得程序更加灵活、可维护和可扩展。
封装
封装(Encapsulation):
封装是指将数据和对数据的操作封装在一个类中,通过访问修饰符来限制对数据的直接访问。通过封装,可以隐藏数据的实现细节,提供公共的方法来访问和操作数据,增加了代码的安全性和可维护性。
public class OOPTest {
private String name;
private int gender;
private int age;
public String getName() {
return name;
}
public String getGender() {
return gender == 0 ? "男" : "女";
}
public void canWork() {
if (18 <= age && age <= 50) {
System.out.println(name + " 正常上班");
} else {
System.out.println(name + " 该退休了");
}
}
}
继承
继承(Inheritance):
继承是指一个类可以继承另一个类的特性和行为。通过继承,子类可以继承父类的属性和方法,并且可以在子类中添加新的属性和方法,实现代码的重用和扩展。继承可以建立类之间的关系,形成类的层次结构。
继承应该遵循里氏替换原则,子类对象必须能够替换掉所有父类对象。
父类引用指向子类对象称为 向上转型 。
public class OOPChildTest extends OOPTest{
@Override
public void canWork() {
if (18 <= getAge() && getAge() <= 50) {
System.out.println(getName() + " 正常上班");
} else {
System.out.println(getName() + " 退什么休,我还能干");
}
}
}
多态
多态(Polymorphism):
多态是指一个对象可以具有多种形态或类型。在面向对象编程中,多态性允许使用父类类型的引用来引用子类对象,通过方法的重写和方法的重载,实现同一个方法在不同对象上的不同行为。多态性提高了代码的灵活性和可扩展性,使得程序更加通用和易于维护。
- 编译时多态:主要指方法的重载
- 运行时多态:程序中定义的对象引用所指向的具体类型在运行期间才确定
public interface A {
void a();
}
public class B implements A{
@Override
public void a() {
System.out.println("b");
}
}
public class C implements A{
@Override
public void a() {
System.out.println("c");
}
}