Java 继承

一、类的继承

1.继承(Inheritance)可以实现类之间共享属性和方法

2.继承是面向对象编程的另一个特性

3.继承可以最大限度地实现代码复用

4.定义:继承是在已有类的基础上构建新的类,一个类继承已有类后,可以对被继承类中的属性和方法进行重用。

5.继承关系说明:继承关系通常也称为 is a kind of 关系。

类B继承自类A意味着:A所有的特点B都有,B还有一些A不具备的特点。(A是一般类,B是特殊类)

6.继承的实现:

(1)类的继承通过extends关键字来实现。

class SubClass extends SuperClass

{

子类物体

}

(2)当SubClass和BaseClass位于同一个包中,则SubClass继承SubClass中public、protected和default访问级别的成员变量和成员方法。

(3)当Sub类和Base类位于不同的包中:SubClass继承SubClass中public、protected访问级别的成员变量和成员方法。

7.继承的层次

(1)Java中不允许多重继承,子类只能继承一个父类,即单一继承

(2)Java可以有多层继承。即一个类可以继承某一个类的子类,从而形成一颗继承树。

8.继承的使用原则:

(1)继承的层次不可太多(继承的层次应该尽量保持在两到三层,如果继承层次很多,会导致对象之间的结构关系太复杂,难以理解,增加设计和开发的难度。影响系统的可扩展性。)

(2)继承树的上层为抽象层(当一个系统使用一个继承树上的类时,应该尽可能把引用变量声明为继承树的上层类型,这样可以降低类之间的耦合性。)

二、方法重写

1.子类中如果创建了一个与父类中相同名称、相同返回值类型、相同参数列表的方法。

2.只是方法体中实现不同,以实现不同于父类的功能,这种方式被称为方法重写

3.方法重写时的注意事项:

(1)方法重写时,方法名与形参列表必须一致

(2)方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符。

(3)方法重写时,子类的返回值类型必须要小于或者等于父类的返回值类型。

(4)方法重写时,子类抛出的异常类型要小于或者等于父类抛出的异常类型。

三、super关键字

1.super代表父类对象

2.super关键字用来在子类的成员方法中访问父类成员(使用super访问父类的成员变量和成员方法)

3.成员变量与成员方法的语法:

(1)super.成员变量

(2)super.成员方法([参数1,参数2,......])

4.super的用法:

(1)每一个子类的构造方法在没有显示调用super()时,系统都会提供一个默认的super。

(2)super()书写在第一行。

(3)在子类构造方法中显示调用super(),完成对特定父类构造方法的调用。

四、final关键字

1.在Java中,final可以修饰变量,也可以修饰类或者方法。

(final修饰变量,变量转换为常量)

2.final修饰局部变量

final修饰的变量一旦被赋值,这个值不能被改变。如果对该变量进行再次赋值,则程序会在编译时报错。

3.final修饰成员变量

final修饰成员变量必须赋予初值

4.final修饰类:

(1)final修饰类意味着这个类不能被继承

(2)声明格式为:

final class finalClassName

{

.......

}

5.final修饰方法

final修饰方法意味着这个方法不能被重写

五、抽象类

1.抽类方法:(当定义一个类时,常常需要定义一些方法来描述该类的行为特征,但有时这些方法是无法确定的。)Java允许在定义方法时不写方法体。不包含方法体的方法称为抽象方法。抽象方法使用abstract关键字来描述,具体示例如下:

public abstract 返回值 方法名(参数列表);

2.抽象类:当一个类中包含了抽象方法,该类必须用abstract关键字来修饰,使用abstract关键字来修饰的类称为抽象类。

abstract class Animal

{

//定义抽象方法shout()

public abstract void shout();

}

3.定义抽象类时的注意事项:

(1)包含抽象方法的类必须声明为抽象类,但抽象类可以不包含任何抽象方法,只需要使用abstract关键字修饰即可。

(2)抽象类是不能被实例化的,因为抽象类中的抽象方法没有被实现,不能被调用。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值