java编程思想–继承

一、使用new关键字创建对象的时候,会先调用父类的构造器。

class Person(){public Person(){System.out.println("Person...");}
}class Man extends Person{public Man(){System.out.println("Man...");}
}public class OlderMan extends Man{public OlderMan(){System.out.println("OlderMan...");}public static void main(String[] args){OlderMan o = new OlderMan();}
}输出结果:
Person...
Man....
OlderMan...

二、该使用继承还是组合?:

如果需要向上转型,那就用继承!

三、final关键字

1、final修饰成员变量

修饰基本类型,使数值恒定不变。
修饰引用类型,使引用恒定不变。

一个被static 和 final 同时修饰的成员变量只占据一段不能改变的空间。

2、final修饰方法

该方法无法被子类修改

private隐式地被指定为final

3、final修饰类

该类不可被继承

四、初始化及类的加载

什么时候类会加载?(Page 180的例程,对于理解类的加载过程很有帮助,应该回过头多看几遍
答:创建类的第一个对象时;访问类的static成员变量或static方法时。

public class Children{private static Parent p = new Parent();private String str;public Children(String str) {this.str = str;}static{System.out.println("first init...");}public static void init(){System.out.println("init method....");}public static void main(String[] args) {System.out.println("begin...");/*Children c = new Children("abc");Children c1 = new Children("fds");Children.p.getStr();*/
//      Children.init();}
}

定义为static的成员只会被初始化一次。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注