• 继承


    继承的概念

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

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

    怎么继承

    使用关键字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()方法

        }

    }

  • 相关阅读:
    【小技巧】如何输入未知长度的数组,用回车结束输入
    Python基础(二)
    Python基础(一)
    Appium Mac 环境安装
    c# 多线程
    c# 并行计算
    C# 反射
    VI 编辑器
    Linq and Lambda
    WINDOWS 命令
  • 原文地址:https://www.cnblogs.com/sy130908/p/11393362.html
Copyright © 2020-2023  润新知