广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java面向对象关键字extends继承的深入讲解
  • 178
分享到

Java面向对象关键字extends继承的深入讲解

2024-04-02 19:04:59 178人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、问题引出二、继承extends2.1继承的用法2.2基本语法2.3继承的好处2.4继承性总结一、 问题引出 面向对象的编程思想使得代码中创建的类更加具体,他们都有各自的属性

一、 问题引出

面向对象编程思想使得代码中创建的类更加具体,他们都有各自的属性,方法。有的时候一些客观事物之前存在一些联系,那么他们在代码中的具体类也存在一些联系。
例如:设计一个动物类


public class Animal {
     public String name;
     public int age;
    public Animal(String name) {
        this.name = name;
    }
     public Animal(int age) {
        this.age = age;
    }
    public void eat(){
        System.out.println(this.name+"吃东西");
    }
}

这个动物类有自己的name,age属性和eat方法

我们又想创建一个猫类和狗类


class cat {
    public  String name;
    public  int age;
    public cat(String name) {
        this.name = name;
    }
    public cat(int age) {
        this.age = age;
    }
    public void eat(){
        System.out.println(this.name+"吃饭");
    }
}
class dog{
    public  String name;
    public int age;

    public dog(int age) {
        this.age = age;
    }

    public dog(String name) {
        this.name = name;
    }
    public  void  eat(){
        System.out.println(this.name+"干饭");
    }
}

由于大家都是碳基生物,你要吃饭我也要吃饭,你有名字我也有名字,也都有自己的年龄,我们在创建其他类的时候还需要在写一遍他们的属性name,age,和方法eat。并且,从逻辑上来说猫和狗都属于动物。这就造成了大量重复的代码,那有没有什么办法能让我不用把这些属性。方法在写一遍呢?

继承:我来啦!!!

继承作为面向对象编程的一个非常重要的关键字,在c++,和Java当中都可以使用它来减少代码冗余。顾名思义,它可以让一个子类继承另一个父类,就像儿子继承爸爸的财产一样,继承后的子类可以拥有父类的方法,属性,这样每次在定义动物类完之后,在想要定义狗或者猫类的时候就不用再把多余的代码写一遍了。我们来看看效果。

二、继承extends

2.1 继承的用法

子类extends父类即可


class cat extends animal{
    public cat(String name) {
        super(name);
    }
    public cat(int age){
        super(age);
    }
    public  void catchMouce(){
        System.out.println(this.name+"抓老鼠");
    }
}
class dog extends animal{
    public dog(String name) {
        super(name);
    }

    public dog(int age) {
        super(age);
    }
    public  void defence(){
        System.out.println(this.name+"看家");
    }
}


在上面的代码中,cat,dog被称为子类、派生类,而animal被称为父类或者超类,extends英文意思为扩展,这里可以理解成继承,例如我们写的cat类有了抓老鼠的方法,dog类有了看家的方法。继承可以让子类拥有父类public修饰的属性和方法,cat、dog类就继承了animal类的name、age属性以及eat方法。

2.2 基本语法

使用 extends 指定父类.

子类会继承父类的所有 public 的字段和方法.

对于父类的 private 的字段和方法, 子类中是无法访问的.

子类的实例中, 也包含着父类的实例. 可以使用 super 关键字得到父类实例的引用

子类继承父类之后,还可以声明自己特有的属性和方法,实现功能的拓展。

2.3继承的好处

1:减少代码的冗余,提高复用性。

2:便于功能的拓展

3:为多态提供了前提。

2.4继承性

Java各种类互相继承的属性称作继承性,继承性有一些规定。

1:一个类可以被多个子类继承。

2:Java的单继承性:一个子类只能继承一个父类。比如一个儿子只能有一个亲爸爸,一个爸爸可以有好几个儿子。在C++,和python中支持多继承

3:如果一个类没有说明一个类的父类的话,那么此类继承于java.lang.Object类

4:所以的类(除了java.lang.Object)都间接或直接的继承java.lang.Object类。那么就意味这所有的类都具有java.lang.Object类声明的功能。

总结

到此这篇关于Java面向对象关键字extends继承的文章就介绍到这了,更多相关Java关键字extends继承内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java面向对象关键字extends继承的深入讲解

本文链接: https://www.lsjlt.com/news/132445.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java面向对象关键字extends继承的深入讲解
    目录一、问题引出二、继承extends2.1继承的用法2.2基本语法2.3继承的好处2.4继承性总结一、 问题引出 面向对象的编程思想使得代码中创建的类更加具体,他们都有各自的属性...
    99+
    2022-11-12
  • Python中关于面向对象中继承的详细讲解
    目录1.继承2.单继承3.多继承4.子类重写父类的同名属性和方法5.子类调用父类同名属性和方法6.多层继承7.调用父类方法super()8.案例1.继承 在程序中,继承描述的是多个类...
    99+
    2022-11-12
  • 深入浅析java中面向对象的继承和多态
    深入浅析java中面向对象的继承和多态?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。继承和多态一.this super关键字this: 可以在构造器中的第一代码中...
    99+
    2023-05-31
    java 继承 多态
  • JAVA面向对象之继承 super入门解析
    目录1 继承1.1概念1.2 特点1.3 练习:继承入门案例2 super3 继承的用法3.1 练习:super之继承中成员变量使用3.2 练习:super之继承中构造方法的使用4 ...
    99+
    2022-11-13
  • 详解Java面向对象中的继承
    继承的概念 继承是面向对象编程中的一个概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。子类在继承父类的同时也可以添加自己的属性和方法,从而实现代码的...
    99+
    2023-05-19
    Java 面向对象 Java 继承
  • Java面向对象之继承的概念详解
    目录1. 继承1.1 继承的实现1.2 继承的好处和弊端1.3. Java中继承的特点2. 继承中的成员访问特点2.1 继承中变量的访问特点2.2 super2.3 方法重写2.4 ...
    99+
    2023-05-18
    Java 继承 Java 面向对象
  • 举例讲解Python面向对象编程中类的继承
    python创建一个类很简单只需要定义它就可以了. class Cat: pass 就像这样就可以了,通过创建子类我们可以继承他的父类(超类)的方法。这里重新写一下cat class Cat...
    99+
    2022-06-04
    面向对象 Python
  • Java深入讲解instanceof关键字的使用
    目录instanceof关键字的使用1. 语法格式2. 类型转换 (Casting)2.1 基本数据类型的Casting2.2 对象类型转换2.3 代码演示3. 错误举例instan...
    99+
    2022-11-13
  • 详解Java面向对象中的继承与多态
    详解Java面向对象中的继承与多态?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java 继承与多态的深入理解1、  什么是继承,继承的特点?子类继承父类的特征和...
    99+
    2023-05-31
    java 面向对象 ava
  • 详细理解JAVA面向对象的封装,继承,多态,抽象
    目录类和对象的使用(面向对象思想落地的实现):子类对象实例化的全过程1.从结果上看:(继承性)2.从过程上来看:1.封装性2.继承性继承性的好处:3.多态性虚拟方法调用4.抽象性1....
    99+
    2022-11-12
  • Java面向对象编程之继承和多态以及包的解析与使用范例
    目录1.继承1.1继承的基本使用1.2 protected 关键字1.3 final 关键字2.多态2.1向上转型2.2动态绑定2.3方法重写2.4向下转型2.5super 关键字2...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作