标签:
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中覆写指的是,在子类中对父类中同一重名函数实现部分加以改变,但与父类的该方法的方法名、返回类型和参数
列表都保持一致。即子类对父类中的函数进行重新定义,子类中的新方法将覆盖父类原有的方法。覆写是父类与子类之间的一种多态表现。
标签:
原文地址:http://blog.csdn.net/zhanghaobin1991/article/details/51360371