Java继承

 一、继承的定义
1、继承是面向对象最显著的一个特性。
   继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新
   的能力。(继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例
   域和方法,或子类从父类继承方法,使得子类具有父类相同的行为)。

2、类的继承格式:
class 父类 {
}
class 子类 extends 父类 {
}

3、需要继承的原因:
     如果有两个类相似,那么它们会有很多重复的代码,导致代码量大且臃肿后期的维护性不高。通过继承将两段代码中相同的部分提取出来组成一个父类,子类就不会存在重复的代码,维护性也提高,代码也更加简洁,提高代码的复用性

4、继承的特点:
(1)子类拥有父类除private以外的所有属性和方法
(2)子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
(3)子类可以重写实现父类的方法
(4)Java中的继承是单继承,一个类只能有一个父类。Java可以多重继承(例如A类继 承B类,B类继承C类)
(5)提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系)
PS:Java实现多继承的一个方法是:implements(实现)接口

二、继承关键字
(1)可以使用extends 和 implements这两个关键字来实现继承,而且所有的类都是继承于java.lang.Object,当一个类没有继承的两个关键字,则默认继承object(这类在java.lang包中,所以不需要import)祖先类。
(2)extends关键字
          在Java中类的继承是单一继承,即一个子类只能拥有一个父类,所以extends只能继承一个类
(3)implements关键字
        使用implements关键字可以变相地使Java具有多继承的特征,使用范围为类继承接口的情况,可以同时继承多个接口(接口和接口之间采用逗号分隔)
public interface A {
     public void eat();
     public void sleep();
}
public interface B {
     public void show();
}

public class C implements A,B {
}

三、构造器
(1)子类不能继承父类的构造器(构造方法或构造函数),但是父类的带有参数的构造器必须在子类的构造器中显式地通过super关键字调用并配以适当的参数列表
(2)如果父类有无参构造器,则在子类的构造器中用super调用父类构造器不是必须的,因为没有使用super关键字,系统会自动调用父类的无参构造器。

四、方法的重写
1、子类可以对父类的方法进行重写,重写的方法一定要与原父类的方法语法保持一致(比如返回值类型,参数类型及个数,方法名都必须一致)
2、子类在调用方法时,优先调用子类的方法

五、继承的初始化顺序
        先初始化父类再初始化子类

六、final关键字
     final关键字可以修饰类、方法、属性和变量
(1)final修饰类,则该类不允许被继承,为最终类;被声明为 final 类的方法自动地声明为 final,但是实例变量并不是 final
(2)final修饰方法,则该方法不允许被覆盖(重写)
(3)final修饰属性:则该类的属性不会进行隐式初始化(类的初始化属性必须有值 或在构造方法中赋值(但只能选其一)
(4)final修饰变量,则该变量的值只能赋一次值,即变为常量

七、super关键字与this关键字
(1)super关键字在子类内部使用,代表父类对象;
        this关键字:指向子类的引用
(2)访问父类的属性: super.属性名
        访问父类的方法:super.方法名()
(3)子类构造方法需要调用父类构造方法时,在子类构造方法体里最前面的位置:super()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值