面向对象编程阶段

5.1 类的继承

*继承的特点

1、通过继承,在已有的类型基础之上进行扩充或改造,得到新的数据类型。

(1)已有的类型称为父类或超类。

(2)得到的新数据类型,称为子类或派生类。

(3)类的继承提高了程序代码的重用性和可扩充性,缩短了软件开发的周期。

*继承的分类:单继承----------子类只能有一个直接父类。

                      多重继承-------子类可以有多个直接父类。

   注意:Java不支持多重继承。

*子类继承父类的语法格式

[修饰符]class子类名extends(扩展继承)父类名

{//子类代码部分}

Eg子类继承父类的特点

public classAnimal

{

      public double weight;

      public void eat()

             { System.out,println(“动物在吃东西”); }

}

public classDog extends Animals

{

     public void say();

           {    System.out.println(“狗叫:汪汪汪”);}

Public static void main(String[] args)

{

         Dog d=new Dog();

         d.weight=150;

        d.eat();

        d.say();

       }

}

*重写父类的方法

1、子类扩展父类—总是以父类为基础,额外增加新的属性和方法。但有一种情况例外:子类需要重写父类的方法。//

重写类的方法-----方法覆盖(override)。

2、方法重写时要遵循的规则:“两同两小一大”规则。

(1)“两同”即方法名相同,形参类表相同;

(2)“两小”指的子类方法的返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方

法声明抛出的异常类更小或相等;

(3)“一大”指的子类方法的访问权限应比父类方法更大或相等;

(4)覆盖方法和背覆盖方法要么都是类方法,要么都是实例方法,不能一个类方法,一个是实例方法。

3、方法重写和方法重载的区别

(1)覆盖是子类和父类之间的关系;而重载是同一类内部多个方法之间的关系。

(2)覆盖一般是两个方法间的,而重载可能有多个重载的方法。

(3)覆盖的方法有相同的方法名和形参表;而重载的方法只能有相同的方法名,不能有相同的形参表。

(4)覆盖时根据调用它的对象来区分方法;而重载是根据形参表来决定调用的是哪个方法。

*父类实例的super引用

     如果需要在子类方法中调用父类被覆盖的实例方法,可以super作为调用者来调用父类被覆盖的实例方法。

注意:1、super是Java提供的一个关键字,它是直接父类对象的默认引用。

           2、正如this不能出现在static修饰的方法中一样,super也不能出现在static的方法中

           3、如果子类定义了和父类同名的属性,也会发生子类属性覆盖父类属性的情形。子类的方法直接访问该属性

时,都会访问到覆盖属性,无法访问被覆盖的属性---通过super来访问父类被覆盖的属性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值