相关文章推荐
强悍的水煮肉  ·  C++类的继承_c++ ...·  1 年前    · 
强悍的水煮肉  ·  C++ 继承| 菜鸟教程·  1 年前    · 
强悍的水煮肉  ·  Msvm_VirtualHardDiskSe ...·  1 年前    · 

通过继承,简化Student类的定义

说明:Student类继承了父类Person的所有属性和方法,并增加了一个属性school。Person中的属性和方法,Student都可以使用。

角度二:从下而上

多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类中无需再定义这些属性和行为,只需要和抽取出来的类构成继承关系。如图所示:

继承的好处

  • 继承的出现减少了代码冗余,提高了代码的复用性。
  • 继承的出现,更有利于功能的扩展。
  • 继承的出现让类与类之间产生了is-a的关系,为多态的使用提供了前提。
  • 继承描述事物之间的所属关系,这种关系是:is-a 的关系。可见,父类更通用、更一般,子类更具体。

    注意:不要仅为了获取其他类中某个功能而去继承!

    继承的语法

    继承中的语法格式;通过 extends 关键字,可以声明一个类B继承另外一个类A,定义格式如下:

    [修饰符] class 类A {
    [修饰符] class 类B extends 类A {
    

    继承中的基本概念

    类B,称为子类、派生类(derived class)、SubClass

    类A,称为父类、超类、基类(base class)、SuperClass

    * 定义动物类Animal,做为父类 public class Animal { // 定义name属性 String name; // 定义age属性 int age; // 定义动物的吃东西方法 public void eat() { System.out.println(age + "岁的" + name + "在吃东西"); * 定义猫类Cat 继承 动物类Animal public class Cat extends Animal { int count;//记录每只猫抓的老鼠数量 // 定义一个猫抓老鼠的方法catchMouse public void catchMouse() { count++; System.out.println("抓老鼠,已经抓了" + count + "只老鼠");
    public class TestCat {
        public static void main(String[] args) {
            // 创建一个猫类对象
            Cat cat = new Cat();
            // 为该猫类对象的name属性进行赋值
            cat.name = "Tom";
            // 为该猫类对象的age属性进行赋值
            cat.age = 2;
            // 调用该猫继承来的eat()方法
            cat.eat();
            // 调用该猫的catchMouse()方法
            cat.catchMouse();
            cat.catchMouse();
            cat.catchMouse();
    

    继承性的细节说明

    子类会继承父类所有的实例变量和实例方法
    子类不能直接访问父类中私有的(private)的成员变量和方法
    在Java 中,继承的关键字用的是“extends”,即子类不是父类的子集,而是对父类的“扩展”
    Java支持多层继承(继承体系)
    一个父类可以同时拥有多个子类
    Java只支持单继承,不支持多重继承