Java封装、继承、多态三大特征是Java面向对象编程的核心概念。理解这三个特征对于Java程序员来说至关重要。下面分别进行详细讲解。
Java封装
Java封装是把类的数据和方法封装在一起,然后通过访问修饰符设置哪些数据和方法可以被其他类访问,哪些不可以。这样做可以防止对类的数据和方法进行非法访问。
访问修饰符包括public、private、protected和默认访问控制符。其中,public表示公开的,可以被任何类访问;private表示私有的,只能在本类中访问;protected表示受保护的,只能被本类及其子类和同一个包中的类访问;默认访问控制符表示只能被同一个包中的类访问。
下面是一个Java封装的示例代码:
public class Person {
private String name;
private int age;
public void setName(String newName) {
name = newName;
}
public String getName() {
return name;
}
public void setAge(int newAge) {
age = newAge;
}
public int getAge() {
return age;
}
}
public class Test {
public static void main(String[] args) {
Person person = new Person();
person.setName("张三");
System.out.println(person.getName());
}
}
在这个示例中,Person类中的name和age变量被声明为private,外部类无法访问。通过setName()和setAge()方法设置变量的值,通过getName()和getAge()方法获取变量的值。
Java继承
Java继承是指一个类可以从另一个类继承属性和方法。被继承的类称为父类或超类,继承父类的类称为子类或派生类。
子类可以重写父类的方法,并可以使用super关键字调用父类的方法。子类可以继承父类的无参构造方法,如果父类没有无参构造方法,则子类必须显式地调用父类的有参构造方法。
下面是一个Java继承的示例代码:
public class Animal {
public void run() {
System.out.println("动物在跑步");
}
}
public class Dog extends Animal {
public void run() {
System.out.println("狗在跑步");
}
}
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
dog.run(); // 输出“狗在跑步”
}
}
在这个示例中,Animal类中的run()方法被继承到Dog类中,并在子类中重写了该方法。在Test类中实例化Dog类并调用run()方法,输出“狗在跑步”。
Java多态
Java多态是指相同的方法调用可以在不同的对象中产生不同的行为。这是因为不同的对象实现了相同的方法,但具体的实现可能不一样。
Java多态包括两种类型:编译时多态和运行时多态。编译时多态也称为静态多态,是指在编译时就确定方法的调用方式。而运行时多态也称为动态多态,是指在运行时才确定方法的调用方式。
下面是一个Java多态的示例代码:
public class Animal {
public void run() {
System.out.println("动物在跑步");
}
}
public class Dog extends Animal {
public void run() {
System.out.println("狗在跑步");
}
}
public class Cat extends Animal {
public void run() {
System.out.println("猫在跑步");
}
}
public class Test {
public static void main(String[] args) {
Animal animal = new Dog();
animal.run(); // 输出“狗在跑步”
animal = new Cat();
animal.run(); // 输出“猫在跑步”
}
}
在这个示例中,Animal类和它的两个子类Dog和Cat都实现了相同的run()方法。在Test类中,首先实例化了一个Dog类对象并赋值给Animal类型的变量,然后调用run()方法,输出“狗在跑步”。接着实例化了一个Cat类对象并赋值给Animal类型的变量,再次调用run()方法,输出“猫在跑步”。这就是Java多态的运行时多态特性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java封装、继承、多态三大特征的理解 - Python技术站