关于java继承相关(方法的重写)

继承

什么是继承?

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

继承的本质是代码的复用

 格式:

子类 + extends +父类名

①在java继承层次当中不能互相继承。

②一个类可以被多个类当父亲,单一个子类只能继承一个父类(Java的继承仅支持单继承,及一个父亲可以有多个儿子,单一个儿子 只能有一个父亲)。

super 与 this 关键字

super 关键字:我们可以通过 super 关键字来实现对父类成员的访问,用来引用当前对象的父类。

this 关键字:指向自己的引用,引用当前对象,即它所在的方法或构造函数所属的对象实例。

在上面提到的继承的特点当中,我们提到子类可以用自己的方式实现父类的方法,这就涉及到了一个新的概念,即Java方法的重写:

重写(Override)是指子类定义了一个与其父类中具有相同名称、参数列表和返回类型的方法,并且子类方法的实现覆盖了父类方法的实现。

 

方法重写和方法重载

方法重载

在同一个类中,方法名相同但是参数列表不同就是方法的重载

方法的重写

发生在父子类当中,子类重新实现父类的方法

为什么会有重写?

继承的本质是代码的复用,在复用的过程中父类的方法的实现不一定完全适用于子类

方法重写之后,子类对象调用重写后的方法

在面向对象体系中,提出了一个软件包的概念,即:为了更好地管理类,把多个类收集在一起成为一组,称为"软件包",简称"包".(可以简单理解为:包其实就是一个文件夹).

注意:

1.包名需要尽量指定成唯一的名字,通常会采用公司域名的倒置形式,例如:com.abc.demo1  .

2.包名和代码路径相匹配,例如创建了一个com.abc.demo1的包,那么就会存在一个对应的路径 com/abc/demo1 来储存代码.

java修饰符

子类不同包时,default(不写)无法访问

public (公开访问权限)无论在哪里都可被访问

private(类访问权限)只能在当前类中被访问

default(包访问权限)只能在同一包中访问

protected(子类访问权限)在同一包中都可以访问到,在不同包中,只有子类可以访问到

public修饰的代码,本类和其他类都是可以访问的,private修饰的代码本类可以访问,其他类不可以访问

方法

1.方法是有访问权限的

2.方法上必须写返回数据类型,如果没有,写void

3.在同一个类当中,方法名可以相同,方法的签名不可以相同,方法签名=方法名+参数列表的类型

4.方法上可以使用其他的关键字进行修饰

构造器(构造函数/构造方法)

在创建对象时初始化对象,即为对象的成员变量赋初始值,与new一起使用在创建对象语句之中

new关键字用于在内存中分配空间并初始化一个对象,他根据提供的类名创建一个新的对象实例,并返回该对象的引用

构造函数的特点包括:

1.名称与类名相同:构造函数的名称必须与类名相同,这使得在创建对象时,编译器能够识别并调用它。

2.初始化对象:构造函数的主要目的是初始化对象,为对象的成员变量赋初值,确保对象在使用前处于一个已知的状态。

3.可重载:一个类可以有多个构造函数,根据参数个数或类型的不同来区分它们,这称为构造函数的重载。

4.没有返回值:构造函数不返回任何值,它的主要任务是设置对象的状态,而不是计算或返回结果。

5.类中存在一个默认的不显示的无参构造函数,一旦写了新的构造函数,原始的构造函数就会被覆盖

一个对象创建后,构造函数仅运行一次,如果想给对象再赋新的值,就需要使用set和get方法

类的加载顺序

 程序执行前先扫描,先去找有main()方法的类 

1.首先先去扫描Test类,返现Test类有父类Base类,先去扫描父类,发现Base类没有父类(如果有的话以此类推)

2.扫描完成后,将编译好的Base.class加载进方法区,此时Base类当中的static代码块执行

3.再将编译好的Test.class加载进方法区,此时Test类当在的static代码块执行

 4.接着main方法入栈,执行new Test();去创建Test类的对象 

5.创建子类对象之前先创建父类对象,所以先执行Base()构造器,在执行Test()构造器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值