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();
    }
}

内存分析

继承的构造方法


posted @   isLiuhy  阅读(368)  评论(0编辑  收藏  举报
编辑推荐:
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 用 C# 插值字符串处理器写一个 sscanf
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
历史上的今天:
2017-03-26 关于这次线上作业
点击右上角即可分享
微信分享提示