编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

继承的概念

在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法。在程序中,如果想声明一个类继承另一个类,需要使用extends关键字,接下来通过一个案例来学习子类是如何继承父类的。

// 定义动物类
class Animal {
    String name;
    void shout() {
        System.out.println("动物发出叫声");
    }
}
// 定义dog类继承动物类
class Dog extends Animal {
    public void printName() {
        System.out.println("name = " + name);
    }
}
public class Example {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.name = "极品二哈";
        dog.printName();
        dog.shout();
    }
}

运行结果:

name = 极品二哈
动物发出叫声

例子中,Dog类通过extends关键字继承了Animal类,这样Dog类便是Animal类的子类。从运行结果不难看出,子类虽然没有定义name属性和shout()方法,但是却能访问这两个成员。这就说明,子类在继承父类的时候,会自动拥有父类所有的成员。在类的继承中,需要注意一些问题,具体如下:

  • 在Java中,类只支持单继承,不允许多重继承,也就是说一个类只能有一个直接父类,例如下面这种情况是不合法的。

class A{}
class B{}

class C extends A,B{} //C 类不可以同时继承A 类和B 类

  • 多个类可以继承一个父类,例如下面这种情况是允许的。

class A{}
class B extends A{}
class C extends A{} //类B 和类C 都可以继承类A
  • 在Java中,多层继承是可以的,即一个类的父类可以再去继承另外的父类,例如C类继承自B类,而B类又可以去继承A 类,这时,C类也可称作A 类的子类。下面这种情况是允许的。

class A{}
class B extends A{} //类B 继承类A,类B 是类A 的子类
class C extends B{} //类C 继承类B,类C 是类B 的子类,同时也是类A 的子类
  • 在Java中,子类和父类是一种相对概念,也就是说一个类是某个类父类的同时,也可以是另一个类的子类。例如上面的示例中,B类是A 类的子类,同时又是C 类的父类。

未经允许不得转载: 技术文章 » Java编程 » 继承的概念