10.java的默认import包有哪些?
0 `! N: U" p7 o 类和对象(Class and Object)
: O5 x3 R+ E2 [ 0.最外层的类可以声明成final:final class a{} ok!,但是不能是private和static的.
$ N) p" j# o4 u/ m q I 1.overload是同类里同样的方法名,override是父子的继承
6 x' X7 o/ d2 E/ S" C' Q! ^* O 2.override的返回结果必须一样,否则编译错哦' _9 Q/ D+ z# z6 I# u
The return type of an overriding method is identical to the return type of the method it overrides.
9 u8 m8 P3 l5 ~# M' T) m3 Z. q 2.1 override的modifier可以扩大,但是不能缩小.比如父类private void test(){}$ H( P' l$ r& g7 {
子类:public void test(){} ,没问题;如果反了,就死翘翘了!
3 y2 e, U Z1 S ^( q 3.super.super(),靠,错的,没这么写的% f5 n+ \( V" N
4.static和非static之间永远无法override!
7 h" d0 d% P& S; I( t9 v 5. 看程序' Y9 Z8 a( p, b+ ?1 q+ o
以下是引用片段:( l8 g* |# K" g
public class A{
1 Z7 X8 b w, s3 W6 s/ E9 d void test1() throws baseEx{hi();} 8 W f+ S2 A+ O4 }- \9 C- |9 u# ]8 S
void hi(){System.out.println("say hi,a");}
: ^) B) Y' L4 J }
D' K+ D/ `3 L4 M5 [3 E3 X class AA extends A{
. \+ i0 K0 Q: Y- H Y) X( Z void hi(){System.out.println("say hi,aa");}
g. d. H4 c5 k( D# j }
% b+ z3 H3 i: b9 }7 r7 T5 C) B class test{ 2 J* m: M: V w; _% _" L( H+ p a
static void main(String b[]) throws Exception{ / F1 D- O" t+ v/ ^5 E; f$ K
A a = new AA();
5 j% _+ ^! k+ H" [: }% r2 i" Q9 Z a.test1();
9 ]5 a% f W6 r$ M3 C* a6 G }
4 R5 @; C# d- M# d' \: v } . c9 N* B) a, b' x* h1 M) C3 k
D; k% I/ i* S* y5 Q
结果是,"say hi,aa",这说明什么?说明,方法永远跟着类的原来面目走;而,变量恰恰相反!
( x8 _4 A; j( i 6.一个非抽象方法死活也别想override成一个抽象方法7 O* z* b/ p0 j6 S
7.override的子类的方法抛出的的异常只能是父类方法抛出异常的子异常类,或者无!9 V% u! x: w' A2 ` `% v
8.构造器不能是native,final,static,synchronized的,可以是public,private,什么都没有的,呵呵
* U. }; {4 W7 ?% [, R0 i% P 9.构造器函数里还可以写return呢,但后面什么都不许有,甚至null(这不是废话吗,哈哈)
! u* K4 o0 _5 d( i D2 a* M. ]0 @ 10.构造器不能返回值.这大家都知道,但如果有个"构造器"反值了,别紧张,它就不是构造器喽,只是个普通函数。 |