IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 2021-09-10 -> 正文阅读

[人工智能]2021-09-10

继承

1.1继承格式:

public class 子类名 extends 父类名{}

例子:public class Zi extends Fu{}
Fu:是父类,或者超类、基类
Zi:是子类,或者派生类

1.2继承的好处与弊端

好处:
(1)提高了代码的复用性(多个类的相同成员可以方法放到同一个类中)
(2)提高了代码的维护性(如果需要修改的话,只需要修改一处)

弊端:
(1)继承让类之间产生了关系,类的耦合性增强了,当父类发生变化是子类也随着发生变化,削弱了子类的独立性。

什么时候使用继承?
继承的关系:is a
假设发:我有两个类A和B,如果他们A和B的一种,或者B是A的一种,就说明他们之间存在继承关系,这个时候就可以考虑使用继承实现,否则不能滥用。

1.3继承中变量的访问特点

在子类中访问一个变量
(1)子类局部范围找
(2)子类成员范围找
(3)父类成员范围找
(4)如果都没有就报错

1.4super

super和this的用法相似
(1)this:代表本类对象的引用
(2)super:代表父类存储空间的标识(可以理解为父类对象的引用)

1.5继承中构造方法的访问特点

子类中所有的构造方法默认都会访问父类中的无参的构造方法
为什么?
(1)因为子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化
(2)每个子类的构造方法的第一条语句默认都是:super()

如果父类没有无参构造方法,只有带参构造方法,该怎办呢?
(1)通过使用super关键字去显示的调用父类的带参构造方法
(2)在父类提供一个无参构造方法

1.6继承中成员方法的访问特点

通过子类对象访问一个方法
(1)子类成员范围找
(2)父类成员范围找
(2)如果都没有就报错(不考虑父亲的父亲)

1.7super内存图

1.8方法重写

方法重写概述:
子类中出现了和父类一模一样的方法声明

方法重写的应用:
当子类需要父类的功能,而功能主体子类有特有的内容时,可以重写父类中的方法,这样,及沿袭了父类的功能,又定义了子类特有的内容

@Override
(1)是一个注解
(2)帮助检验方法重写的正确性

1.9方法重写的注意事项

(1)私有方法不能被重写(父类私有成员子类是不能继承的)
(2)子类方法访问权限不能更低(public>默认>private)

1.10Java中继承的注意事项

(1)java中类只支持单继承,不支持多继承
(2)java中支持多层继承

案例

package zhangzhe;

public class Teacher {
    private String name;
    private int age;

    public Teacher() {
    }
    public Teacher(String name,int age) {
        this.name=name;
        this.age=age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void teach() {
        System.out.println("用爱成就每一位学生");
    }
}



package zhangzhe;

public class Student {
    private String name;
    private int age;

    public Student() {
    }
    public Student(String name,int age) {
        this.name=name;
        this.age=age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    public void study(){

    }
}


package zhangzhe;
/*
需求:定义老师类和学生类,然后写代码测试;最后找到当中的共性内容,抽出一个类,用继承的方式改写代码,
并进行测试
 */
public class Demo {
    public static void main(String[] args) {
        Teacher t1 = new Teacher();
        t1.setName("林青霞");
        t1.setAge(30);
        System.out.println(t1.getName()+","+t1.getAge());
        t1.teach();

        Teacher t2 = new Teacher("风清扬",33);
        System.out.println(t2.getName()+","+t2.getAge());
        t2.teach();
    }
}

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:09:55  更:2021-09-12 13:10:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 15:46:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码