Java中private、protected和继承

在Java中,private、protected和继承是面向对象编程中的重要概念。它们分别用于控制类的访问权限和定义类之间的关系。在本文中,我们将深入探讨这三个概念的用法和区别。

private关键字

在Java中,private是一个访问修饰符,用于限制类的成员只能在类的内部访问。私有成员只能被定义它们的类方法访问,即外部类无法直接访问私有成员。

public class PrivateExample {
    private int num;

    public void setNum(int num) {
        this.num = num;
    }

    public int getNum() {
        return num;
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

在上面的示例中,num是一个私有成员变量,只能通过公共方法setNumgetNum来设置和获取它的值。

protected关键字

protected关键字也是一个访问修饰符,用于限制类的成员只能在同一个包或子类中访问。受保护的成员可以在派生类中被访问。

public class ProtectedExample {
    protected int num;

    protected void display() {
        System.out.println("Number is: " + num);
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

在上面的示例中,num是一个受保护的成员变量,可以被同一包中的其他类或子类访问。display方法也是受保护的,只能在子类中调用。

继承

继承是面向对象编程中的重要概念,用于定义类之间的父子关系。子类可以继承父类的属性和方法,并可以重写父类的方法。在Java中,使用extends关键字实现类的继承。

public class Animal {
    protected String name;

    protected Animal(String name) {
        this.name = name;
    }

    protected void sound() {
        System.out.println("Animal sound");
    }
}

public class Dog extends Animal {
    private String breed;

    public Dog(String name, String breed) {
        super(name);
        this.breed = breed;
    }

    @Override
    protected void sound() {
        System.out.println("Dog barks");
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.

在上面的示例中,Dog类继承自Animal类,子类Dog可以访问父类Animal的受保护成员和方法。sound方法被子类重写,实现了不同的行为。

代码示例

public class Main {
    public static void main(String[] args) {
        PrivateExample privateExample = new PrivateExample();
        privateExample.setNum(10);
        System.out.println("Private number: " + privateExample.getNum());

        Dog dog = new Dog("Buddy", "Labrador");
        System.out.println("Dog name: " + dog.name);
        dog.sound();
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

在上面的示例中,我们创建了一个PrivateExample对象和一个Dog对象,并演示了私有成员和继承的用法。

状态图

以上是私有、受保护和继承的状态图,说明了它们之间的关系。

饼状图

Java访问权限控制 30% 40% 30% Java访问权限控制 Private Protected Inheritance

以上是Java访问权限控制的饼状图,显示了私有、受保护和继承在Java中的比例。

总之,私有、受保护和继承是Java面向对象编程中的重要概念。了解它们的用法和区别,有助于更好地设计和编写Java程序。希望本文对你有所帮助!