您的位置:首页 > 编程语言 > Java开发

java中的继承

2016-05-10 09:10 197 查看
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中覆写指的是,在子类中对父类中同一重名函数实现部分加以改变,但与父类的该方法的方法名、返回类型和参数    

   列表都保持一致。即子类对父类中的函数进行重新定义,子类中的新方法将覆盖父类原有的方法。覆写是父类与子类之间的一种多态表现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息