文章目录
- Java的三大核心特性是:封装、继承和多态
Java的三大核心特性是:封装、继承和多态
-
封装(Encapsulation):封装是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类提供的方法进行操作和访问。封装的主要目的是增强安全性和简化编程,使用者只需要知道对象提供哪些方法,而不需要了解内部细节。
-
继承(Inheritance):继承是从已有类得到继承信息创建新类的过程。子类继承父类的特性(属性和方法),并可以增加新的特性或重写父类的方法。这使得代码可以重用,提高了开发效率。
-
多态(Polymorphism):多态是指允许一个接口多种形态。在Java中,多态通常通过方法的重写(Override)和父类引用指向子类对象实现。这意味着同一个接口,使用不同的实例而执行不同操作。多态的存在增加了程序的灵活性和可扩展性。
代码示例:
//封装示例
public class Animal { // 私有属性,封装了动物的名字 private String name; // 公有方法,用于设置动物名字 public void setName(String name) { this.name = name; } // 公有方法,用于获取动物名字 public String getName() { return this.name; }public void eat() { System.out.println("Animal is eating."); }
}//继承示例
// 子类继承自 Animal (以封装示例中的Animal作为父类)
public class Dog extends Animal { @Override public void eat() { System.out.println("Dog is eating dog food."); } public void bark() { System.out.println("Dog is barking."); }
}
//多态示例
public class Demo { public static void main(String[] args) { Animal myAnimal = new Dog(); // 父类引用指向子类对象 myAnimal.eat(); // 调用子类重写的 eat 方法 // 由于 myAnimal 是 Animal 类型,它不能直接调用 Dog 特有的 bark 方法 // 如果需要调用,需要将其转型为 Dog 类型 if (myAnimal instanceof Dog) { Dog myDog = (Dog) myAnimal; myDog.bark(); // 调用 Dog 的 bark 方法 } }
}
在这个代码示例中,Animal类展示了封装特性,将动物的名称隐藏在内部,并通过公有方法 setName 和 getName 进行访问和修改。
Animal 和 Dog 类展示了继承,其中 Dog 类继承自 Animal 类,并重写了 eat 方法。最后,Demo 类展示了多态,其中 myAnimal 变量是 Animal 类型,但可以指向 Dog 类型的对象,并调用其重写的方法 eat。通过类型转换,我们还可以调用 Dog 类特有的 bark 方法。多态如何表示的呢?现在是Dog类来继承Animal 类,还可以创造出cat、bird等等动物类去继承Animal类并重写eat方法,这就是多态的一个体现。