Java-继承

继承

继承(inheritance)是面向对象的重要概念。继承是除组合(composition)之外,提高代码重复可用性(reusibility)的另一种重要方式。我们在组合(composition)中看到,组合是重复调用对象的功能接口。我们将看到,继承可以重复利用已有的类的定义。

继承涉及到5个内容:

1、基类的继承(基类public数据成员和方法的继承)

2、衍生类成员的补充

3、基类与衍生层的成员访问(隐式参数this和super的使用)

4、基类与衍生类的方法覆盖

5、基类与衍生层的构造方法调用

用以下代码来解释

一、基本代码
先定义一个People类

package Inheritance;

class People
{
    
    private String name;
    
    private int age;
    
    public People(String name, int age)
    {
        this.name = name;
        this.age = age;
    }
    
    public String getName()
    {
        return this.name;
    }
    
    public int getAge()
    {
        return this.age;
    }
    
    public void showInfo()
    {
        
        System.out.println("My name is:" + this.name + ",my age is:" + this.age);
        
    }
    
}

定义一个继承People类的Student类

package Inheritance;

//  用关键字extends实现继承
class Student extends People
{
    // Student作为People的衍生类,可补充自有的数据成员sex、sexStr
    private boolean sex;
    
    private String sexStr;
    
    public Student(String name, int age, boolean sex)
    {
        super(name, age);
        // 隐式参数super可用于访问父类的构造方法、数据成员和方法
        // 子类Student编写构造方法时,必须要调用父类People的构造方法
        this.sex = sex;
        // 隐式参数this可用于访问当前类内部的数据成员和方法
        if (sex = true)
        {
            this.sexStr = "男";
        }
        else
        {
            this.sexStr = "女";
        }
        System.out.println("I am student!");
    }
    
    // 衍生类可覆盖父类的方法,外部类调用时Student的showInfo()方法时,不会同时调用父类的showInfo()方法
    public void showInfo()
    {
        System.out.println("Student Infomation:");
        System.out.println("My name is:" + super.getName() + ",my age is:" + super.getAge() + ",my sex is:"
            + this.sexStr);
    }
}


然后我们用InheriTest类实现这两个类

package Inheritance;

public class InheriTest
{
    
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        
        Student stu = new Student("J-Chen", 26, true);
        
        stu.showInfo();
        
    }
    
}

上面只写了继承的一些具体实现,上面的5个知识点,已经在注释中写到。
关于Java的继承的具体知识点,可以到网上搜,实在太多了,这里我就不做详述了。

你可能感兴趣的:(Java-继承)