zoukankan      html  css  js  c++  java
  • 继承

    继承的概念

    继承是一种构建新类的方式,他是基于已有的类的定义为基础,构建新的类,已有的类称为父类,新构建的类称为子类,子类能调用父类的非private修饰的成员,同时还可以自己添加一些新的成员,扩充父类,甚至重写父类已有的方法,更其表现符合子类的特征。让子类的表现更独特,更专业。

    继承的写法

    Java规定,一个类后面紧跟 extends关键字,再加一个类的名字,则表示新建的类继承自extends 后面的那个类。代码如下:

    public class Student {
        private String name;
        private String age;
    
        private String handleName(String name){
           return "I'm " + name;
        }
    
        private String handleAge(String age) {
            return age + " 岁";
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = handleName(name);
        }
    
        public String getAge() {
            return age;
        }
    
        public void setAge(String age) {
            this.age = handleAge(age);
        }
    }

    现在我们新建一个类去继承自他,这个类我们就叫Boys,其代码如下:

    public class Boys extends Student {
        @Override
        public void setName(String name) {
            super.setName(name);
        }
    
        @Override
        public String getAge() {
            return super.getAge();
        }
    
        @Override
        public String getName() {
            return super.getName();
        }
    
        @Override
        public void setAge(String age) {
            super.setAge(age);
        }
    }

    在上面代码中,我们可以看到很多相似的方法,这些方法的方法签名,参数,返回类型都是与父类的方法是一致,Java允许我们定义和父类一致的方法,以便我们在这个方法中写入新的代码。上面方法中,我们会看见一个新的关键字super,这个关键字与this相似,不过super表明调用方法的对象是父类的对象,那这段自动生成的代码的意思就是如果我们不添加新的内容,那么当我们子类调用这些方法的时候,执行的是父类的方法。同时我们在这个方法上面看见一个注解 @Override这表明这个方法是覆盖父类的方法,而不是方法重载,下面我具体说一下什么是方法重载,以及这个注解存在的必要。

  • 相关阅读:
    vue 数字滚动的插件 vue-count-to
    ASP.NET Core EF 查询获取导航属性值,使用Include封装
    nginx在asp.net mvc项目中 配置 初步快速入门
    JQuery EasyUI 扩展方法 日期控件 设置时间段函数
    JQueryEasyUI easyui-combobox 单击文本区域显示下拉菜单
    Jquery Easy UI Datagrid 上下移动批量保存数据
    ASP.NET MVC BundleConfig介绍和使用
    ASP.NET MVC5 视图相关学习
    SqlDependency数据库同步+signalr 推送消息
    T4 模板自动生成带注释的实体类文件
  • 原文地址:https://www.cnblogs.com/qq1312583369/p/10921259.html
Copyright © 2011-2022 走看看