面向对象继承

简介: 面向对象继承

继承

继承是多态的前提,没有继承就没有多态

子类可以拥有父类的内容

子类还可以拥有自己专属的内容

定义父类格式(一个普通的父类其实就是一个类)

public class 父类名称 { }

定义子类名称(就是子类名称后面加上一个extends父类名称)

public class 子类名称 extends父类名称{ }

再父子类的关系继承中,如果出现成员变量重名,则创建子类对象时有两种访问方式:

直接通过子类对象访问成员变量 (等号左边是谁就优先用谁,没有则往上找)

间接通过成员方法访问成员变量 (该方法属于谁就优先用谁)

区分子类中方法重名三种

局部变量:直接写成员变量名

本类的成员变量名:this.成员变量名

父类的成员变量名:super.成员变量名

在父子类的关系当中,创建子类对象,访问成员方法的规则

创建对象是谁就优先用谁,没有则向上找

重写【override】

重写:方法的名称一样,参数列表【也一样】 覆盖 覆写

重载:方法的名称一样,参数列表【不一样】

方法覆盖重写特点:创建的是子类对象,则优先用子类方法

方法重写的注意事项

必须保证父子类的方法名称和方法参数相同

@Override 写在方法前用来检测是否是有效的覆盖重写

这个注解就算不写只要满足条件也是正确的

子类方法的返回值必须【小于等于】父类方法返回值的范围

子类方法权限必须【大于等于】父类方法权限修饰符

super();用于子类调用父类的构造方法

public Zl() {
    super();
}


三种用法

在子类成员方法中,访问父类成员变量

在子类成员方法中,访问父类成员方法

在子类构造方法内,访问父类构造方法

必须是第一个

this()用于访问本类的内容

在本类的成员方法中访问本类的成员变量

public void mete(){
    System.out.println(this.num);


在本类的成员方法中访问本类的另一个成员方法

public void mate1(){
    System.out.println("AAA");
}
public void mate2(){
    this.mate1();
    System.out.println("BBB");
}


在本类的构造方法中访问本类的另一个构造方法

public Zl() {
    this(12);
}
public Zl(int num) {
    this.num = num;
}


}

this调用也必须是第一个也是唯一一个 不能和super方法同时使用


相关文章
|
数据采集 搜索推荐 安全
海外网站SEO如何进行优化?
答案是:海外SEO优化需要足够多的GPB外链+足够多的优质内容。 海外网站的SEO优化涉及到多个层次和步骤。 其中包括关键字优化、内容创建和优化、技术SEO、用户体验优化、社交媒体整合以及链接建设等。 接下来,我们将分别对这些重要的SEO优化步骤进行深入探讨。
315 0
|
JSON 运维 前端开发
使用brython做个迷宫游戏-1:规划/技术栈/创建项目
使用brython做个迷宫游戏-1:规划/技术栈/创建项目
242 0
|
Java
Java多线程高并发学习笔记(二)——深入理解ReentrantLock与Condition
锁的概念 从jdk发行1.5版本之后,在原来synchronize的基础上,增加了重入锁ReentrantLock。 本文就不介绍synchronize了,有兴趣的同学可以去了解一下,本文重点介绍ReentrantLock。
1311 0
|
7天前
|
云安全 监控 安全
|
12天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1351 8
|
6天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
427 10