第4章 面向对象(下)【hmcxy】

本文详细介绍了Java中的类继承、抽象方法和抽象类的概念,包括子类继承父类的特性,如何通过super关键字调用父类成员,以及final关键字的作用。此外,还探讨了接口的使用,包括接口的定义、实现以及静态和默认方法。强调了抽象类与接口的区别,并解释了在实际编程中如何选择使用它们。
摘要由CSDN通过智能技术生成

继承

通过继承可以实现多种事物之间的一种关联关系。

类的继承

在现有类的基础上构建一个新的类,子类会自动拥有父类所有可继承的(公共的)属性和方法。

继承

[修饰符] class 子类名 extends 父类名{

//程序核心代码

}

修饰符public或省略不写,若没有extends一个父类,默认继承object。

java类只支持单继承,不允许多重继承。但可以多层继承。

重写父类方法

子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表、返回值类型。

子类重写父类方法时,不能使用比父类更高的访问权限。

super关键字

调用父类成员变量和方法变量、构造方法

super.成员变量

ssuper.成员方法{[参数1。参数2...]}

super.([参数1,参数2...])

通过super调用父类构造方法的代码必须位于子类构造方法的第一行,并且只出现一次。子类的构造方法中一定会调用父类的某一个构造方法。默认调用父类无参的构造方法、若父类中只定义了有参的构造方法,在子类调用默认的无参构造方法,将出错。则:

1.在子类中显式调用父类中已有的构造方法

2.在父类中定义无参的构造方法

在定义一个类时,若无特殊需求,当定义了有参构造方法后,尽量在类中显式定义一个无参的构造方法,避免继承时出错。

Object类搜是所有类的父类.............有一些常用方法。

final关键字:修饰类、变量、方法。修饰的类为最终类,不可被继承,修饰的方法不可被子类重写,修饰的变量(成员变量和局部变量)是常量,只能赋值一次(一旦被赋值,其值不可改变)。

局部变量可以在声明时同时对变量进行赋值,也可以先声明以后再赋值。

成员变量只能在声明的同时赋值。

抽象方法:abstract修饰,在定义时不需要提供方法体。一些方法用来描述类的行为特征,但是有时方法的实现方式无法确定。抽象方法没有方法体,不可被调用。要使用则需要创建一个子类,在子类中实现抽象类中的抽象方法(子类继承抽象类,子类中编写方法体)。.........??图啥啊。子类实现了父类的抽象方法后,可以正常进行实例化操作,通过实例化的对象可以调用实现的方法。

抽象类:

一个类中包含抽象方法,类也必须用abstract修饰。包含抽象方法的类必须定义为抽象类,但抽象类中可以不包含抽象方法。抽象类不可被实例化。

接口(interface):

一种特殊的抽象类,其内部所有方法都是抽象方法(abstract),默认方法(default)和静态方法(类方法(static))。

[修饰符] interface 接口名 [extends 父接口1,父接口2,.....]{

        [public][static][final] 常量类型 常量名=常量值;

        [public][abstract] 方法返回值类型 方法名 {[参数列表]};

}

修饰符可以使用public或省略(省略时默认采用包权限访问接口)

可以继承多个接口,接口内部可以定义多个常量或者抽象方法,定义常量时必须进行初始化赋值,定义默认方法或者静态方法时,可以有方法体。

静态方法可以通过: 接口名.方法名调用

抽象方法和默认方法只能通过接口实现类的实例对象来调用,因此需要定义一个接口实现类。

接口实现类:

        implements关键字实现当前接口,并实现接口中的所有抽象方法。接口实现类可以在继承另一个类的同时实现多个接口。

[修饰符] class 类名 [extends 父类名]{implements 接口1,接口2,.....}{

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值