Java-继承

作者: 三笑奈若何 | 来源:发表于2017-05-21 22:08 被阅读0次

    继承

    继承(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-继承

        本文链接:https://www.haomeiwen.com/subject/vgpvxxtx.html