三.面向对象基础知识

静态语言与动态语言
  静态语言:Java
    1.变量类型一旦确定,不可变(只能赋,不能转)
      但是可以类型转换{隐式,显示}
    2.对象的类型,一旦确定,不会改变,一个对象本身的类型,就是new的时候所使用的那个类型
  动态语言:Javascrip

重载:编译时多态,在编译的时候确定,当前调用的方法是哪一个类中的指定方法

  1.发生在同一个类中
  2.有不同的方法,但是方法名相同,参数列表不同
  3.访问修饰符,返回类型,抛出异常没要求(可以相同,可以不同)
  public void test(){}
    public void test(String a){
    t.test();
  }
  !!重载方法辨识度唯一:举个例子:(多个匹配函数)
  public void test(double a){
  }
  public void test(float a){
  }
重写:运行时多态,在运行的时侯确定,当前调用的方法是哪一个对象中的指定方法
  

  1.发生在子类父类之间,子类继承了父类的某一个方法,然后子类又对这个方法进行了重写(private方法不可以重写)
  2.子类中重写的方法,和父类中原来的方法,方法名和参数列表必须相同
  3.方法的访问权限修饰符,可以扩大,不可缩小
  4.方法的返回类型,可以相同,可以不同,若不同重写后的返回类型,必须是原来返回类型的子类型(基本类型必须一致)
  5.异常抛小,不能抛大,可以一致

注意:默认情况下,我们重写的方法,都会和父类中继承方法保持一致的声明,只有方法实现的代码块中的代码,会被重写编写

原文地址:https://www.cnblogs.com/Magic-Li/p/12786722.html