Java 继承和访问控制

类的继承

  • Java中使用extends来实现继承
  • 通过继承,子类自动拥有了基类(supercalss)的所有成员。
  • Java只支持单继承,一个子类只允许有一个基类,一个基类可以有多个子类。
class Person
{
    private String name;
    private int age;
    public void setName (String name)
    {
        this.name = name;
    }
    public void setAge(int age)
    {
        this.age = age;
    }
    public String getName()
    {
        return name;
    }
    public String getAge()
    {
        return age;
    }
}
class Student extends Person        //继承
{
    private String school;
    public String getSchool()
    {
        return school;
    }
    public void setSchool(String school)
    {
        this.school = school;
    }
}

内存分析

  • 每new一个子类,它都包含一个父类的对象。

访问控制


default权限

  • 如果我们在定义一个变量时前面什么都不加,这个变量就是default权限,也称包权限。如果其他的类想访问这个变量,那么他们必须在同一个包下面。

protected权限

  • 子类可以访问
  • 对于class的修饰只能用default和public

方法的重写


super关键字


  • 和this类似,this表示当前对象。super表示父类。
class FatherClass
{
    public int value;
    public void f()
    {
        value = 100;
        System.out.println("FatherClass.value = "+value);
    }
}
class ChildClass extends FatherClass
{
    public int value;
    public void f()
    {
        super.f();
        value = 200;
        System.out.println("ChildClass.value = "+value);
        System.out.println(value);
        System.out.println(super.value);
    }
}
public class Test
{
    public static void main(String args[])
    {
        calss cc = new ChildClass();
        cc.f();
    }
}

内存分析

继承的构造方法


原文地址:https://www.cnblogs.com/031602523liu/p/8654177.html