Notes7 day07-JAVAOOP

继承

继承概述

多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,这个类就是父类,那么多个子类无需再定义这些属性和行为,只要 继承那一个类即可

自己理解继承关系原理图

 

子类父类称呼

子类又叫派生类

父类又叫 基类、超类

继承的特点

子类自动拥有父类非私有的成员

解释:就是调用的成员子类并没有,可以直接去父类寻找,要是父类也没有就去父类的父类去寻找,以此类推知道Object类,要是Object类都没有,则会出现编译器报错

子类对于访问父类中的私有成员

解释:就是调用的成员子类并没有,可以直接去父类寻找,要是父类的此成员是私有的,那么将不再继续向父类的父类中寻找,而是直接显示编译异常

子类也可以拥有自己的成员

继承的好处

提高代码的复用性

类与类之间产生了关系,是多态的前提

注意

一个子类只能继承一个父类

一个父类可以有好多子类

子类中成员变量和方法与父类名一样时

可以使用super.成员变量、super.成员方法

方法重写

什么是方法的重写

方法重写:子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),子类中访问修饰符必须大于等于重些父类方法的访问修饰符,会出现覆盖效果,也称为重写或者复写。声明不变,重新实现。

方法重写的注意事项

1. 子类方法重写父类方法,必须要保证权限大于等于父类权限,最好修饰权限一样。
2. 子类方法重写父类方法,返回值类型、方法名和参数列表都要一模一样。

方法重写的应用场景

子类可以根据需要,定义特定于自己的行为。既沿袭了父类的功能名称,又根据子类的需要重新实现父类方法,从

构造方法执行特点

描述

1.构造方法的名字是与类名一致的。所有子类是无法继承父类构造方法的。

2.构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构

造方法中默认有一个super() , 表示调用父类的构造方法,父类成员变量初始化后,才可以给子类使用。

访问构造方法的注意事项

* 在子类构造方法中的第一行默认有 super() ,给父类进行初始化的
    * 在子类构造方法中可以手动调用父类其他重载的构造方法,一但采用这种方法,则默认super()会被覆盖
       格式: super(参数列表);
* super 是写在子类的构造方法的第一行.

super 和 this 的

super和this的含义

==super:前提:继承关系 。 代表父类的存储空间标识(可以理解为父亲的引用)。==

==this:代表当前对象的引用(谁调用就代表谁)。==

super 注意点

用super调用父类成员,要是父类成员没有,就继续向父类的父类寻找,直到Object都没有会报错

要是用super调用父类的私有成员也会报错

访问构造
this(...)       ‐‐    本类的构造方法
super(...)      ‐‐    父类的构造方法

子类的每个构造方法中均有默认的super(),调用父类的空参构造。手动调用父类构造会覆盖默认的super()。

super()和this()都必须是在构造方法的第一行,所以不能同时出现。

抽象类

抽象类拥有的成员和普通类拥有的成员一样,但是比普通类多了一个抽象方法

抽象类的格式

public abstract class 类名字 { }

抽象类注意事项

抽象类不能实例化对象

普通类继承抽象类时要重写抽象类的全部抽象方法

抽象类继承抽象类时则可以不用重写抽象类的抽象方法和普通方法

抽象方法

定义格式:修饰符 abstract 返回值类型 方法名 (参数列表);

注意

抽象方法没有方法体

有抽象方法的类一定是抽象类

abstract不能和以下关键字一块使用

private 冲突 final 冲突 static 冲突

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值