Java学习笔记(Java中的继承)

一、概述

面向对象编程中,继承是一个比较重要的概念,继承描述的是事物之间的所属关系,是从已有的类中构建出新的类,已有的类称为父类,新的类称为子类,子类具有父类的数据属性和方法,并能扩展新的属性和方法(不能继承私有)。

1、继承的使用

格式:使用 extends 关键字 ==> class 子类 extends 父类 ()

创建 Person 类和 Student 子类:public class Student extends Person {...}

2、继承的优点

提高了代码的复用性,提高了软件的开发效率

让类与类之间产生了联系,提供了多态的前提

3、继承的特点

在Java中,只支持单继承,不支持多继承,一个子类只能有一个直接父类;

父类私有成员,子类不能继承,因为根本看不到;

一个父类可以有多个子类;

支持多层继承,一个类的父类可以再去继承另外的父类;

子类和父类是相对的概念,一个类是某个类父类的同时,也可以是另一个类的子类。

4、继承中成员变量关系

不同变量名子类直接调用;

相同变量名调用时,如果子类有,就不调用父类的变量,如果子类没有,父类有,则调用父类的;

在子类中,要调用父类的成员,使用关键字 super,调用父类方法也是一样,使用super关键字

二、代码实例

public abstract class Person {

    String name;

    int age;

    int i = 1;

    public void setName(String name)

    {

        this.name = name;

    }

    public void setAge(int age)

    {

        this.age = age;

    }

    public String getName()

    {

        return name;

    }

    public int getAge()

    {

        return age;

    }

}

再创建Studen.java子类

public class Student extends Person {

    int i = 2;

    int number;

    public void setNumber(int number)

    {

        this.number = number;

    }

    //在子类中能直接使用父类的非私有成员变量

    public void message()

    {

        System.out.println("My name is " + this.name + ",I am " + this.age + " years old," + " my number is " + this.number);

    }

    public void print()

    {

        System.out.println(name);

        System.out.println(super.i);      //在子类中,要调用父类的成员,使用关键字super

    }

}

在Main.java中赋值并调用

public class Main {

    public static void main(String[] args)

    {

        Student stu = new Student();

        stu.setAge(18);

        stu.setName("java");

        stu.setNumber(32);

        stu.message();

        stu.print();

        System.out.println(stu.i);      //子类有则调用子类的,子类没有则调用父类的

    }

}

实例分析:

1.在父类Person中定义了非私有变量name、age和测试变量i,子类Student中新创建了number变量并在子类中能够使用父类中的变量。

2.在父类和子类中都有 i 变量,调用时,如果子类有,就不调用父类的变量,如果子类没有,父类有,则调用父类的。

3.在子类中,要调用父类的成员,使用关键字 super,调用父类方法也是一样,使用super关键字。

你可能感兴趣的:(Java学习笔记(Java中的继承))