继承

来源:互联网 发布:百慕大三角知乎 编辑:程序博客网 时间:2024/05/24 01:40
      !   继承的细节:对于父类中的私有部分,子类对象是无法直接访问的。
    private:是一个“权限修饰符”。
   
    class Person{
       private int age;       为了安全性,不被外界使用,降低访问权限。   和封装(set,get)同种思想。
    }
    new Person().age;            虽然不能访问age属性,但是创建的这个对象一定具备这个属性,只是不能用而已。


 子父类成员名相同时,如何区分?
   
   super和this的用法很相似。
   this:代表的是本类的对象引用。
   super:代表的是父类的那片空间。


  子父类中方法的特点
 
  特殊情况:
  当子父类中出现的一模一样的方法时
  子类对象运行的是子类的方法。
  这种特殊情况:称之为‘覆盖’。(你,我都有,但是以你的为准运行你的。形象的称之为覆盖,但不是真的覆盖)
 
  重载:指函数被重复载入。函数名一样,参数列表不同,和返回值没关系。一般发生在本类里面。
  覆盖:返回值类型,函数名,参数列表都一致。发生在子类里面。

 覆盖的应用
  子类对功能的内容要有自己的定义,保留父类功能的声明,建立子类功能特有的内容。
 
  注意事项:
  1.子类方法覆盖父类方法,必须要保证权限大于等于父类权限。(父类方法是private类型,子类无法覆盖)
  2.静态只能覆盖静态,或者被静态覆盖。
     只有子父类方法,才叫覆盖。变量没有覆盖一说。

子父类中构造函数的特点:
  创建子类对象时,Fu中的构造函数也参与运行了。
  因为子类中所有的构造函数的第一行默认都有一个隐式的super();语句。
  调用本类中的构造函数用this(参数列表)语句,调用父类中的构造函数用super(参数列表);
 
  为什么子类对象初始化都要访问父类中的构造函数?
  因为子类继承了父类中的内容,所以创建对象时必须要先看父类是如何对内容初始化的。

继承:extends
   1.提高代码复用性。
   2.让类与类之间产生了关系,为第三个特征多态提供里前提。
  
   java支持单继承,不支持多继承
  
   单继承:一个类只能用一个父类。
   多继承:一个类可以有多个父类。JAVA并不直接支持。优势:可以让子类具备更多的功能。弊端:调用的不确定性,因为方法的主体不同,JAVA对其进行改良。
  
   什么时候用继承?
   子类继承了父类的所有属性。(两个或多个子类,提取共性,生成父类。)