个人博客网:https://wushaopei.github.io/    (你想要这里多有)

1、继承性

1.1 为什么要类的继承性?(继承性的好处)

①减少了代码的冗余,提高了代码的复用性;
②更好的扩展性
③为多态性的使用提供了前提

1.2 继承的格式:A extends B

  • A类叫做子类 (subClass)
  • B类叫做父类 (superClass,超类,基类)

1.3 子类继承父类以后哪些不同?

子类继承父类以后,就拥了父类中的属性和方法(不认为父类中的构造器可以被继承。但是子类可以用super访问弗雷的构造方法。子类除了可以拥父类中的属性和方法,还可以自定义属性和方法。

1.4  java中继承性的说明

1.子类继承父类以后,就拥了父类中的属性和方法(不认为父类中的构造器可以被继承。子类除了可以拥父类中的属性和方法,还可以自定义属性和方法。
2.java中的类只支持单继承(一个类只能有一个父类。一个父类可以有多个子类)。
3.子类继承父类以后,无法直接访问父类中被私化的属性(我们认为继承了被私化的属性。但是我们可以间接的通过get/set方法对属性进行调用。
4.父类是一个相对的概念,父类分为直接父类和间接父类。
子类继承父类以后,除了拥父类中的属性和方法外,还继承了间接父类中的属性和方法。

2、方法的重写

2.1什么是方法的重写 :

定义 :子类继承父类以后,子类可以对父类中的方法进行重写(覆盖,覆写)

2.2方法重写后的调用 :

子类重写父类的方法后。通过子类对象进行调用方法,实际上调用的是子类中重写的父类中的方法。

2.3 说明

权限修饰符  返回值类型  方法名(形参列表){
方法体;
}

子类重写的方法      父类被重写的方法

1.子类重写的方法和父类被重写的方法的方法名和形参列表必须一样。
2.子类重写的方法的权限修饰符不小于父类被重写方法的权限修饰符。
3.子类重写的方法的返回值类型不大于父类被重写方法的返回值类型(父类被重写方法的返回值类型和子类重写方法的返回值类型必须子父类关系才能。
注意 :
    ①父类被重写方法的返回值类型如果是void 子类重写方法返回值类型也只能是void
    ②父类被重写方法的返回值类型 double 子类重写方法返回值类型int (不可以的,只能是相同的)
4.子类方法抛出的异常不能大于父类被重写方法的异常(后面再说

2.5 注意

  1. 如果父类中的方法的权限修饰符是private,那么我们不认为这个方法可以被子类重写。
  2. 子父类中同名的方法(非重写)须同时为static的,或同时为非static的

3、关键字super

super用来调用父类中的结构,包括属性,方法,构造器 。
super可以调用:属性,方法,构造器
super调用属性和方法:
父类被子类继承以后,可以在子类的构造器和方法中。通过使用"super."来调用父类中的属性和方法。一般我们都会省略掉"super."
如果子类中的属性名和父类中的属性名一样,那么调用父类中的属性就不能省略"super."。如果子类重写了父类中的方法,如果需要调用父类中被重写的方法也不能省略"super."。
super调用构造器:
格式 :super(形参列表)
说明 :

  1. super(形参列表)只能放在子类构造器的首行
  2. 在子类同一个构造器中只能有一个super(形参列表)
  3. 在子类同一个构造器中super(形参列表)和this(列参列表)只能使用其中的一个
  4. 在子类的构造器中如果没显示的调用super(形参列表)和this(列参列表) 那么默认调用的是 super() - 父类的空参构造器

4、子类对象实例化过程(理解)

过程上:
通过子类的构造器,一定可以调用到直接父类和间接父类....Object类中的构造器。进而将这些类的信息通过JVM加载到内存中。所以可以进行调用父类中的属性和方法。

结果上:
子类继承了父类以后。那么子类就拥了父类中的属性和方法。通过子类的对象就可以调用父类中的属性和方法。

注意:自始之终我们只认为创建了子类一个对象

JAVASE(九)面向对象特性之 : 继承性、方法重写、关键字super、的更多相关文章

  1. Java面向对象之继承,方法重写,super关键字,员工类系列继承题

    在程序中,如果想声明一个类继承另一个类,需要使用extends关键字. 格式: class 子类 extends 父类 {} 继承的好处 1.继承的出现提高了代码的复用性,提高软件开发效率. 2.继承 ...

  2. java方法重写和super关键字

    //java方法重写和super关键字 //在继承中,其实就是子类定义了和父类同名的方法 //就是方法,属性都是相通的 //重写限制: //被子类重写的方法不能拥有比父类方法更加严格的权限 //sup ...

  3. Java方法重写与super关键字

    ----------siwuxie095                     方法的重写:     (1)在继承中也存在着重写的概念,其实就是子类定义了和父类同名的方法     (2)定义:方法名 ...

  4. 04 Python的继承、方法重写、super()类、父类私密属性的调用

    继承 A类继承B类,A即可获得B类的全部公共属性和方法(包括内置属性和方法).格式如:class A(B): class Animal: def sleep(self): print("zZ ...

  5. 乐字节Java继承|方法重写、super和final关键字

    大家好,乐字节的小乐又来了,上一篇是:乐字节Java|JavaBean.继承与权限修饰,也是属于Java继承的,今天继续Java继承. 一. 方法的重写 父类不满足子类的要求,按需改写.注意 方法签名 ...

  6. 面向对象编程(九)——面向对象三大特性之继承以及重写、Object类的介绍

    面向对象三大特性 面向对象三大特征:继承 :封装/隐藏 :多态(为了适应需求的多种变化,使代码变得更加通用!) 封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 继承:很好的实现 ...

  7. c#基础学习(0702)之面向对象和方法重写概述

    面向对象编程(OOP==>Object-Oriented Programming) OOA:面向对象分析 OOD:面向对象设计 OOAD:面向对象分析与设计 什么是面向对象?一种分析问题的方式( ...

  8. 疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写

    一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...

  9. 《java入门第一季》之面向对象(方法重写问题)

    方法重载的引入:根据一个案例: /* 继承中成员方法的关系: A:子类中的方法和父类中的方法声明不一样,这个太简单. B:子类中的方法和父类中的方法声明一样,这个该怎么玩呢? 通过子类对象调用方法: ...

随机推荐

  1. Vue实现靠边悬浮球(PC端)

    我想把退出登录的按钮做成一个悬浮球的样子,带动画的那种. 实现是这个样子: 手边没有球形图.随便找一个,功能这里演示的为单机悬浮球注销登录 嗯,具体代码: <div :class="[ ...

  2. 字节码编程,Javassist篇一《基于javassist的第一个案例helloworld》

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 目录 @ 目录 目录 一.前言 二.开发环境 三.案例目标 四.技术实现 五.测试结果 1. ...

  3. STM32 基于 CubeMX配置GPIO点亮LED灯(超级详细+图文并茂)

    我是一个只会点灯的菜鸟: 相关文章 [STM32系列汇总]小白博主的STM32实战快速进阶之路(持续更新) 文章目录 相关文章 1 前言 2 理论分析 2.1 LED 原理 2.2 板载资料 2.3 ...

  4. css布局的漂浮、position定位

    float: left:文本流向对象的右边 right:文本流向对象的左边 div具有自动换行效果 position: absolute:将对象从文档流中拖出,即飘到最上面一层,形成层叠,不占位置:可 ...

  5. [zoj3593]扩展欧几里得+三分

    题意:给一个数A,有6种操作,+a,-a,+b,-b,+(a+b),-(a+b),每次选择一种,用最少的次数变成B. 思路:由于不同的操作先后顺序对最后的结果没有影响,并且加一个数与减一个相同的数不能 ...

  6. Fragment 嵌套Fragment注意事项

    最近项目新功能需要在垂直方方向可以循环滚动,并且水平方向也可以水平循环滚动,并且可以定位到指定item上.很自然的想到了ViewPager和 VerticalViewPager来解决项目需求,UI的大 ...

  7. java - >IO流_缓冲流(高效流)

    缓冲流(高效流) 在我们学习字节流与字符流的时候,大家都进行过读取文件中数据的操作,读取数据量大的文件时,读取的速度会很慢,很影响我们程序的效率,那么,我想提高速度,怎么办? Java中提高了一套缓冲 ...

  8. HTML学习——day1

    HTML是一种用于创建网页的标准标记语 注意:对于中文网页需要使用<meta charset=''utf-8''>声明编码,否则会出现乱码. HTML标签 <标签>内容< ...

  9. MyBatis入门知识汇总

     为什么要使用MyBatis? 我们都知道,在学习mybatis之前,要在Java中操作数据库,需要用到JDBC,但是在使用JDBC时会有许多缺陷. 比如: 1.使用时需要先进行数据库连接,不用后要立 ...

  10. 「雕爷学编程」Arduino动手做(35)——模拟量声音传感器

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...