java中的继承

来源:互联网 发布:山西广电网络集团公司 编辑:程序博客网 时间:2024/06/18 07:47

1、继承
   a、在同一个.java文件中,只允许1个public类,且该public类与文件名同名。
   b、如果该.java文件中不存在public类,则可以为任意合法名称
   c、在成员变量中,数值型基本数据类型的初始默认值为:0。boolean型的默认值为false
   d、引用数据类型的默认初始值为null。
   e、如果没有显示的创建该类的构造方法,则构造器会生成一个默认的无参的构造方法,如果显示的定义了构造方法,则构造器不在创建无参的默认构造方法。
  2、super关键字
   a、在父类已有的逻辑中加入自己的一些方法,可以使用super。需放在当前构造方法的首位。
   b、当子类与父类有同名的成员变量或者同名的成员方法,那么子类中的元素大于父类中元素的优先级,所以需要使用super关键字调用父类中的方法或者成员变量
   c、通过super后直接跟参数,可以调用父类的构造方法。
  3、继承中的构造方法
   a、子类的构造过程中必须调用其基类的构造方法。

   b、子类可以在自己的构造方法中使用super(arguments...)调用基类的构造方法。

        b.1、使用this(arguments..)调用本类的另外构造方法。

        b.2、如果调用super,必须写在子类构造方法的第一行。

   c、如果子类的构造方法中没有显示的调用基类的构造方法,则系统默认调用基类的无参数构造方法。

   d、如果子类构造方法中既没有显示调用基类构造方法,而基类又没有无参数的构造方法,则编译出错。

  4、访问权限修饰符
   a、私有权限(private)
     private可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外部类,不考虑内部类)。被private修饰的成员,只能在定义它们的类中使用,在其他类中不能调用。
     b、默认权限(default)
     类,数据成员,构造方法,方法成员,都能够使用默认权限,即不写任何关键字。默认权限即同包权限,同包权限的元素只能在定义它们的类中,以及同包的类中被调用。
     c、受保护权限(protected)
     protected可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外部类,不考虑内部类)。被protected修饰的成员,能在定义它们的类中,同包的类中被调用。
   如果有不同包的类想调用它们,那么这个类必须是定义它们的类的子类。
     d、公共权限(public)
     public可以修饰类,数据成员,构造方法,方法成员。被public修饰的成员,可以在任何一个类中被调用,不管同包或不同包,是权限最大的一个修饰符。

     PS:
     e、并不是每个修饰符都可以修饰类(指外部类),只有public和default可以。
     f、所有修饰符都可以修饰数据成员,方法成员,构造方法。
     g、为了代码安全起见,修饰符不要尽量使用权限大的,而是适用即可。比如,数据成员,如果没有特殊需要,尽可能用private.
     h、修饰符修饰的是“被访问”的权限。

    public      protected     default   private
  同一个类         √            √           √        √
  同一个包         √            √           √
  子类             √            √
  不同包           √
   
  5、方法覆写
   a、  在子类中可以根据需要对从基类中继承来的方法进行重写。
   b、  重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型。
   c、  重写方法不能使用比被重写方法更严格的访问权限。
   严格顺序private>default>protecte>public ,这个与多态有关,讲了多态就会明白得多。
   当某个地方由父类修饰了,可以调用父类的某个方法。
   若子类对该方法访问更严格,当传递子类过来,那么可能造成不可访问.
  6、覆写与重载的区别
   a、重载(Overloading)
   Java中方法的重载,指的是在类中可以创建多个方法,它们具有相同的名字,但具有不同的引数列(参数类型和个数)和不同的定义。
   而返回值的类型可以相同也不以不同,但是不能仅仅通过不同的返回值来区分重载函数。
   调用方法的时候根据参数列表来判断调用哪个方法。重载是一个类中的多态性表现。

   b、覆写(Overriding)
   Java中,子类默认可以继承父类中的方法,而不需要重新编写相同的方法,但是有时候,
   子类并不想原封不动的继承父类中的方法,而是做出一定的修改,这就是采用方法的覆写(也成为覆盖)来实现的。
   Java中覆写指的是,在子类中对父类中同一重名函数实现部分加以改变,但与父类的该方法的方法名、返回类型和参数    
   列表都保持一致。即子类对父类中的函数进行重新定义,子类中的新方法将覆盖父类原有的方法。覆写是父类与子类之间的一种多态表现。

0 0
原创粉丝点击