继承

继承的概念

类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法

其实就是可以继承父类的属性和方法

怎么继承

使用关键字extends,如下所示,B继承A, A是B的父类,B是A的子类。当一个类不显示的继承其它类时,默认继承Object类,Object是所有的父类。在java中只有直接父类和间接父类关系,没有兄弟关系,爷孙关系。

父类的东西,子类可以全部继承吗?

  不,当然不是;

  权限修饰符的继承问题

  被private修饰的,是不可以被继承的,因为private修饰的只能在本类中可见,子类是不可见的;另外父类被protected或public修饰的,子类是可以继承的;被默认修饰符修饰的只能在同包下的子类是可以继承的;

   构造器的继承问题

  构造器是不会被子类继承的,但子类的对象在初始化时会默认调用父类的无参构造器,当父类显示写了有参构造器,且没有无参构造器。子类继承父类的时候必须显示的调用父类的有参构造器。调用的方式可以使用super(a,b)来调用;

  static修饰符的继承问题

  子类是不会继承父类被static修饰的方法和变量,但是可以调用;如图所示,this.a()就会报错,普通方法的继承this.method_a()就不会报错;

举个例子

格式:

class 子类 extends 父类 {}

接下来通过一个案例来学习子类是如何继承父类的,如下所示。Example01.java

/*

 * 定义员工类Employee

 */

class Employee {

    String name; // 定义name属性

    // 定义员工的工作方法

    publicvoid work() {

        System.out.println("尽心尽力地工作");

    }

}

 

/*

 * 定义研发部员工类Developer 继承 员工类Employee

 */

class Developer extends Employee {

    // 定义一个打印name的方法

    publicvoid printName() {

        System.out.println("name=" + name);

    }

}

 

/*

 * 定义测试类

 */

publicclass Example01 {

    publicstaticvoid main(String[] args) {

        Developer d = new Developer(); // 创建一个研发部员工类对象

        d.name = "小明"; // 为该员工类的name属性进行赋值

        d.printName(); // 调用该员工的printName()方法

        d.work(); // 调用Developer类继承来的work()方法

    }

}

原文地址:https://www.cnblogs.com/sy130908/p/11393362.html