广告
返回顶部
首页 > 资讯 > 精选 >JAVA面向对象中如何继承super
  • 819
分享到

JAVA面向对象中如何继承super

2023-06-28 23:06:28 819人浏览 安东尼
摘要

小编今天带大家了解JAVA面向对象中如何继承super,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“JAVA面向对象中如何继承sup

小编今天带大家了解JAVA面向对象中如何继承super,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“JAVA面向对象中如何继承super”的知识吧。

1 继承

1.1概念

继承是面向对象最显著的一个特征 继承是从已有的类中派生出新的类,新类能吸收已有类的数据属性和行为,并扩展新的能力. Java继承是会用已存在的类的定义作为基础建立新类的技术 新类的定义可以增加新的数据或者新的功能,也可以使用父类的功能,但不能选择性的继承父类(超类/基类) 这种继承使得复用以前的代码非常容易,能够大大的缩短开发的周期,降低开发费用.

1.2 特点

  • 使用extends关键字来表示继承关系

  • 相当于子类把父类的功能复制了一份

  • Java只支持单继承

  • 继承可以传递(爷爷/儿子/孙子这样的关系)

  • 父类的私有成员由于私有限制访问,所以子类不能使用父类的私有资源

  • 继承多用于功能的修改,子类可以在拥有父类功能的同时,进行功能拓展

  • 像是is a的关系

1.3 练习:继承入门案例

创建包: cn.tedu.oop2

创建类: TestExtends.java

package cn.tedu.oop2;public class TestExtends {    public static void main(String[] args) {        //5.分别创建3个类的对象        Animal a = new Animal();        Cat c = new Cat();        MiaoMiao m = new MiaoMiao();        //6.利用对象调用方法进行测试                a.eat();//爷爷类使用自己的方法        c.eat();//爸爸类可以使用从爷爷类中继承过来的方法        m.eat();//孙子类也可以使用从爷爷类中继承过来的方法    }}//1.创建小动物类--爷爷类class Animal{    //4.添加爷爷类的普通方法    public void eat(){        System.out.println("小动物Animal吃啥都行~");    }}//2.创建小猫类--爸爸类class Cat extends Animal{    //7.定义爸爸类中的属性    int a = 10;//普通属性    private int b = 100;//私有属性}//3.创建MiaoMiao类--孙子类class MiaoMiao extends Cat{        //8.定义孙子类的方法    public void studyJava(){        System.out.println("正在学Java");        System.out.println(a);                //System.out.println(b);//不可以,私有资源被限制访问    }}

2 super

我们可以把super看作是父类的对象:Father super = new Father();

当父类的成员变量与子类的变量同名时,使用super指定父类的成员变量

使用super在子类构造方法的第一行调用父类构造方法的功能

super();–调用的是父类的无参构造

super(参数);–调用的是父类对应参数的构造方法

注意:在构造方法里,出现的调用位置必须是第一行

3 继承的用法

3.1 练习:super之继承中成员变量使用

创建包: cn.tedu.oopextends

创建类: TestExtends1.java

package cn.tedu.oop2;public class ExtendsDemo1 {    public static void main(String[] args) {        //7.创建子类的匿名对象,调用study()        new Son().study();    }}//1.创建父类class Father{    //3.创建父类的成员变量    int sum = 1;    int count = 2;}//2.创建子类class Son extends Father{    //4.创建子类的成员变量    int sum = 10;    //5.创建子类的普通方法    public void study(){        System.out.println("Goog good study , day day up");        //6.创建子类的局部变量        int sum = 100;        //8.打印子类的局部变量sum        System.out.println(sum);//100        //9.打印子类的成员变量sum        System.out.println(this.sum);//10        //10.打印父类的成员变量sum                System.out.println(super.sum);//1        System.out.println(count);    }}

3.2 练习:super之继承中构造方法的使用

创建包: cn.tedu.oop2

创建类: ExtendsDemo2.java

package cn.tedu.oop2;public class ExtendsDemo2 {    public static void main(String[] args) {        //6.1通过父类的无参构造创建父类对象        //Father2 f = new Father2();        //6.2通过父类的含参构造创建父类对象        //Father2 f2 = new Father2("哈哈哈");        //7.创建子类对象        Son2 s = new Son2();    }}//1.创建父类class Father2{    //3.创建父类的无参构造//    public Father2(){//        System.out.println("我是父类的无参构造");//    }    //4.创建父类的含参构造    public Father2(String s){        System.out.println("我是父类的含参构造"+s);    }}//2.创建子类class Son2 extends Father2{    //5.创建子类的无参构造    public Son2(){        //super();//调用父类的无参构造        super("你好~");        System.out.println("我是子类的无参构造");    }}

4 方法重写Override

继承以后,子类就拥有了父类的功能

在子类中,可以添加子类特有的功能,也可以修改父类的原有功能

子类中方法的签名与父类完全一样时,会发生覆盖/复写的现象

注意: 父类的私有方法不能被重写

重写的要求:两同两小一大

两同:方法名 参数列表 要完全一致

两小:

子类返回值类型小于等于父类的返回值类型(注意此处说的是继承关系,不是值大小)

子类抛出异常小于等于父类方法抛出异常

一大:子类方法的修饰符权限要大于等于父类被重写方法的修饰符权限

4.1 练习:继承中成员方法的使用

创建包: cn.tedu.oop2

创建类: ExtendsDemo3.java

package cn.tedu.oop2;public class ExtendsDemo3 {    public static void main(String[] args) {        //4.创建对象进行测试        Father f = new Father();        Son s = new Son();        f.eat();        s.eat();        f.play();        s.play();    }}//1.创建父类class Father{    //3.定义父类中的普通方法    public void eat(){        System.out.println("爸爸爱吃肉");    }    public void play(){        System.out.println("爸爸爱放风筝");    }}//2.创建子类class Son extends Father{    //5.如果子类对父类的方法不满意,可以重写父类的方法        @Override //注解,用来加在方法上,表示这是一个重写的方法    public void eat(){        System.out.println("儿子爱吃蔬菜");    }    @Override    public void play(){        System.out.println("儿子爱玩游戏");    }}

5 拓展

5.1 继承的好处与坏处

继承的好处

提高了代码的复用性(多个类相同的成员可以放在同一个类中)

提高了代码的维护性(如果方法的代码需要修改,只修改一处即可)

继承的坏处

继承让类与类建立了关系,类的耦合性增强

当父类发生变化时,子类实现也不得不跟着变化,削弱了子类的独立性

5.2 this与super的区别

this: 代表本类对象的引用

我们可以把this看作是Cat this = new Cat();

super:代表父类存储空间的标识,可以理解成父类对象的引用

可以把super看作是Father super = new Father();

JAVA面向对象中如何继承super

this关键字指向调用该方法的对象

一般我们是在当前类中使用this关键字

所以我们常说this代表本类对象的引用

注意:super的使用前提是继承,没有父子类关系,就没有super

注意:this调用构造方法或者super调用构造方法,都必须出现在构造方法的第一行

注意:如果父类没有无参构造,需要手动在子类构造方法的第一行调用其他的含参构造

拓展:如果子类重写了父类的方法以后,可以使用super.方法名(参数列表)来调用

5.3 重载Overload与重写Override的区别

重载:在一个类中的现象:同一个类中,存在方法名相同,参数列表不同的方法

重写:是指建立了继承关系以后,子类对父类的方法不满意,可以重写,遵循两同两小一大原则

重载的意义:是为了外界调用方法时方便,不管传入什么样的参数,都可以匹配到对应的同名方法

重写的意义:在不修改源码的情况下,进行功能的修改与拓展(OCP原则:面向修改关闭,面向拓展开放)

Java是什么

Java是一门面向对象编程语言,可以编写桌面应用程序、WEB应用程序、分布式系统和嵌入式系统应用程序。

感谢大家的阅读,以上就是“JAVA面向对象中如何继承super”的全部内容了,学会的朋友赶紧操作起来吧。相信编程网小编一定会给大家带来更优质的文章。谢谢大家对编程网网站的支持!

--结束END--

本文标题: JAVA面向对象中如何继承super

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

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

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

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

下载Word文档
猜你喜欢
  • JAVA面向对象中如何继承super
    小编今天带大家了解JAVA面向对象中如何继承super,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“JAVA面向对象中如何继承sup...
    99+
    2023-06-28
  • 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 继承
  • Python面向对象——继承
    #coding:utf-8 """ 术语: 1、在python3中,自定义创建的类都默认继承了python类中名为object的类 2、object类提供的方法,是双下划线开头的,是为了提供给python内部使用 3、被继承的类叫做超类,...
    99+
    2023-01-31
    面向对象 Python
  • 【Java基础篇 | 面向对象】—— 继承
    个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 本专栏旨在分享学习Java...
    99+
    2023-10-11
    java 开发语言 面向对象
  • Java全面分析面向对象之继承
    目录继承什么是继承呢?子类访问父类的成员变量子类访问父类非同名成员变量子类访问父类同名成员变量子类访问父类的成员方法子类访问父类的非同名方法子类访问父类的同名方法super关键字su...
    99+
    2022-11-13
  • python 面向对象之继承
    文章目录 前言继承的概念单继承多继承子类重写父类的同名方法和属性子类调用父类同名的方法和属性多层继承私有权限 前言 前面我们已经学习了 python 面向对象的类和对象,那么今天我将为大...
    99+
    2023-09-01
    python 开发语言
  • java面向对象继承与多态介绍
    目录一.概述  二.继承2.1 继承的概述2.2 继承机制2.3 类中属性,方法的继承与覆盖2.4 super 关键字三. 多态总结一.概述 ...
    99+
    2022-11-12
  • Java面向对象之类的继承介绍
    目录继承的作用如果没有继承机制是怎么样的?使用继承机制后的示例?类的继承是什么?子类和父类的继承机制Java单继承Java继承的顶级父类:Object对象的类型转换对象向上转型对象向...
    99+
    2022-11-13
  • 详解Java面向对象中的继承与多态
    详解Java面向对象中的继承与多态?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java 继承与多态的深入理解1、  什么是继承,继承的特点?子类继承父类的特征和...
    99+
    2023-05-31
    java 面向对象 ava
  • JavaScript面向对象中继承的概念
    本篇内容介绍了“JavaScript面向对象中继承的概念”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、...
    99+
    2022-10-19
  • 详析Python面向对象中的继承
    目录一单继承1.继承的基本语法格式如下2.查看类继承情况3.继承中的属性和方法4.初始化函数__init__()和super二多层继承三多重继承一 单继承 类继承作为python的三...
    99+
    2022-11-13
  • 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中什么是继承:新类不必从头编写新类从现有的类继承,就自动拥有了现有类的所有功能新类只需要编写现有类缺少的新功能继承的好处:复用已有代码自动拥有了现有类的所有功能只需要编写缺少的新功能继承的特点:子类和父类是is关系python继...
    99+
    2023-01-30
    面向对象 python
  • python 面向对象之继承顺序
    先来看一个经典类class A:     def __init__(self):         p...
    99+
    2023-01-30
    面向对象 顺序 python
  • 面向对象封装、继承、多态
    一、面向对象封装   01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 —— 将 属性 和 方法 封装 到一个抽象的 类 中 外界 使用 类 创建 对象,然后 让对象调用方法 对象方法的细节 都被 封装...
    99+
    2023-01-31
    面向对象 多态
  • Java面向对象的继承的本质是什么
    本篇内容主要讲解“Java面向对象的继承的本质是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java面向对象的继承的本质是什么”吧!1.什么是继承?(1)用来提高代码的复用性(2)将相同的...
    99+
    2023-06-29
  • python3:面向对象(多态和继承、方
    1、多态 同一个方法在不同的类中最终呈现出不同的效果,即为多态。 class Triangle: def __init__(self,width,height): self.width = width ...
    99+
    2023-01-31
    面向对象 多态
  • 深入浅析java中面向对象的继承和多态
    深入浅析java中面向对象的继承和多态?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。继承和多态一.this super关键字this: 可以在构造器中的第一代码中...
    99+
    2023-05-31
    java 继承 多态
  • 学生视角看Java面向对象的继承本质
    1.什么是继承? (1)用来提高代码的复用性 (2)将相同的功能模块封装到方法中需要使用时调用方法达到代码复用的目的 (3)通过继承将多个类中的相同的类容摘取出来,变成一个新类,让其...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作