Java中继承

一、概述

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

1、继承的使用

  • 格式:使用 extends 关键字 ==> class 子类 extends 父类 ()
  • 创建 Person 类和 Student 子类:public class Student extends Person {...}

2、继承的优点

  • 提高了代码的复用性,提高了软件的开发效率
  • 让类与类之间产生了联系,提供了多态的前提

3、继承的特点

  • 在Java中,只支持单继承,不支持多继承,一个子类只能有一个直接父类;
  • 父类私有成员,子类不能继承,因为根本看不到;
  • 一个父类可以有多个子类;
  • 支持多层继承,一个类的父类可以再去继承另外的父类;
  • 子类和父类是相对的概念,一个类是某个类父类的同时,也可以是另一个类的子类。

4、继承中成员变量关系

  • 不同变量名子类直接调用;
  • 相同变量名调用时,如果子类有,就不调用父类的变量,如果子类没有,父类有,则调用父类的;
  • 在子类中,要调用父类的成员,使用关键字 super,调用父类方法也是一样,使用super关键字。

二、代码实例

先创建Person.java父类

package myExtends;

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子类

package myExtends;

/**
 * 使用extends关键字创建子类并新定义了number变量,定义i进行继承中成员变量的关系进行测试
 */
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中赋值并调用

package myExtends;

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);      //子类有则调用子类的,子类没有则调用父类的
    }
}

实例分析:

  • 在父类Person中定义了非私有变量name、age和测试变量i,子类Student中新创建了number变量并在子类中能够使用父类中的变量
  • 在父类和子类中都有 i 变量,调用时,如果子类有,就不调用父类的变量,如果子类没有,父类有,则调用父类的
  • 在子类中,要调用父类的成员,使用关键字 super,调用父类方法也是一样,使用super关键字
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ONESTAR博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值