Java三种常用的面向对象编程概念:封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)。这些概念都是为了更好地提高代码的可维护性和扩展性而设计的。
封装(Encapsulation)
封装是面向对象编程中的一种基本概念,指的是把对象的状态(属性)和行为(方法)包装到一个单元中,并通过访问限制来控制对象的访问。这种访问限制可以防止外部的数据干扰和未经授权的访问。
关键字:private
,public
,protected
。其中private
关键字表示属性或方法只能在类内部访问,public
关键字表示任何类都能访问,protected
关键字表示只有子类和同一类的对象才能访问。
下面通过一个简单的代码示例来展示封装的实现:
public class Person{
private String name;
private int age;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
}
上面的代码示例中,将name
和age
属性封装在一个对象中,通过使用private
修饰符指定了属性的访问权限,同时提供了对属性的get/set
方法,采用封装的方式,保证了对象的数据安全性。
继承(Inheritance)
Java中的继承是指一个类从另一个类中继承其属性和方法,从而扩展或修改它们。其中,继承的类被称为父类(超类、基类),而继承的类被称为子类(派生类)。
Java的继承有以下特点:
- 子类继承父类的所有非
private
属性和方法; - 子类可以重写父类的方法,从而实现特定的功能需求;
- 子类可以添加自己的属性和方法,以扩展或修改父类的行为。
下面通过一个简单的代码示例来展示继承的实现:
public class Animal{
public void run(){
System.out.println("Animal is running");
}
}
public class Dog extends Animal{
public void bark(){
System.out.println("Dog is barking");
}
}
public class Cat extends Animal{
public void meow(){
System.out.println("Cat is meowing");
}
}
上面的代码示例中,Dog
和Cat
分别继承自Animal
类,其中,子类不仅继承了父类所有的公共方法(run()
),也可以添加自己的属性和方法,比如Dog
类中的bark()
方法和Cat
类中的meow()
方法。
多态(Polymorphism)
多态表示同一操作或方法,可以在不同的对象上有不同的行为,允许程序在不同的情况下以不同的方式响应。
Java的多态有以下特点:
- 子类对象可以替代父类对象的位置;
- 父类对象引用可以指向子类对象;
- 父类的引用变量可以调用子类的方法(前提是重写了父类的方法)。
下面通过一个简单的代码示例来展示多态的实现:
public class Animal{
public void run(){
System.out.println("Animal is running");
}
}
public class Dog extends Animal{
public void bark(){
System.out.println("Dog is barking");
}
@Override
public void run(){
System.out.println("Dog is running");
}
}
public class Cat extends Animal{
public void meow(){
System.out.println("Cat is meowing");
}
@Override
public void run(){
System.out.println("Cat is running");
}
}
public class Main{
public static void main(String[] args){
Animal animal = new Animal();
Animal dog = new Dog();
Animal cat = new Cat();
animal.run();
dog.run();
cat.run();
}
}
上面的代码示例中,Dog
和Cat
类重写了Animal
类的run()
方法,由于向上转型后,dog
和cat
都是Animal
类的对象,因此调用run()
方法时,实际调用了子类重写的run()
方法,实现了多态的效果。
这就是对Java中封装、继承、多态的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java之封装、继承、多态的概念 - Python技术站