美文网首页首页投稿(暂停使用,暂停投稿)Android技术知识Android开发
Android基础之Java多态、继承、重载和重写的区别

Android基础之Java多态、继承、重载和重写的区别

作者: silencezwm | 来源:发表于2016-07-19 22:40 被阅读1503次


    一、继承(inheritance)
    1.1 继承是什么
    简而言之,继承就是在现有类的基础上,增加新的方法或者重写基类的方法的一种方式。
    继承还是面向对象语言的基本特征【继承、多态和封装】之一。

    在Java中,java.lang.Object这个类是所有类的基类【也叫父类或者超类】。继承涉及到的两个关键字如下:

    extends:      用于继承类,每个类最多只能继承一个父类
    implements:   用于继承接口,每个类继承接口数量不做限制
    

    该下面我们只是创建了一个Person类,且没有明确指定继承某个类,但是其基类默认为Object。

    /**
      * 创建类: 人
      */
    public class Person{
        //姓名
        public void name(){}
    
        //性别
        public void sex(){}
    }
    

    1.2 继承怎么用

    public class JavaPolymorphic {
    
    /**
      * 创建一个接口
      */
    public interface IPerson{
      //接口中的方法
      void work();
    }
    
    /**
      * 创建类: 男人,并继承Person
      */
    public class Man extends Person implements IPerson{
          /**
            * 重写了父类Person的name()方法
            */
           @Override
           public void name() {
              super.name();
          }
    
          /**
            * 重写了接口IPerson中的work()方法
            */
          @Override
          public void work() {}
    
          }
    }
    

    1、该上面类Man继承了父类Person和接口IPerson,此时就可选择性的重写父类Person中的方法,但是接口IPerson中所定义的所有接口必须实现重写。
    2、如果类Man为抽象类(被abstract修饰),则继承父类或接口时,可选择不重写、部分重写或全部重写父类中的方法和接口中定义的接口。

    二、重载(overloading)
    2.1 重载是什么
    一句话概括:在同一类中,有着相同名称,但形式参数不同的方法。
    比如在上面类JavaPolymorphic中存在以下两个方法:

    /**
     * @param age   年龄
     * @param name  姓名
     */
    public Man(int age, String name){}
    
    /**
     * @param city  城市
     */
    public Man(String city){}
    

    三、重写(overriding)
    3.1 重写是什么
    刚在上面例子也多次提到了重写,重写就是子类继承父类后,覆盖父类中的某个方法的操作就是重写的过程。

    四、多态(Polymorphism)
    4.1 多态是什么
    继承是多态的一种表现形式,一个类型(Person类型)可表现出来多种状态(男人Man,并且具备年龄、姓名等不同属性)
    多态同样也是面向对象语言的基本特征【继承、多态和封装】之一。
    4.2 多态的好处
    降低代码耦合程度,更易于功能的扩展。



    相关文章

      网友评论

        本文标题:Android基础之Java多态、继承、重载和重写的区别

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