//: ExtendsE.java
package thinkinginjava.chapter07;
import thinkinginjava.chapter07.outerpackage.OuterPackage;
public class ExtendsE extends OuterPackage {
public static void main(String args[]) {
ExtendsE ee = new ExtendsE();
ee.funPublic();
ee.funProtected();
//! ee.funPackage(); // 找不到符号;不在用一个包内,无访问权限
//! ee.funPrivate(); // 找不到符号
}
} /** Output
bovenson@ThinkCentre:~/Git/notes/Java/JavaCode/src$ javac thinkinginjava/chapter07/ExtendsE.java
bovenson@ThinkCentre:~/Git/notes/Java/JavaCode/src$ java thinkinginjava.chapter07.ExtendsE
funPublic
funProtected
*/
//: OuterExtendsE.java
package thinkinginjava.chapter07.outerpackage;
public class OuterExtendsE extends OuterPackage {
public static void main(String args[]) {
OuterExtendsE oee = new OuterExtendsE();
oee.funPublic();
oee.funPackage();
oee.funProtected();
//! oee.funPrivate(); // 找不到符号
}
} /** Output
bovenson@ThinkCentre:~/Git/notes/Java/JavaCode/src$ javac thinkinginjava/chapter07/outerpackage/OuterExtendsE.java
bovenson@ThinkCentre:~/Git/notes/Java/JavaCode/src$ java thinkinginjava.chapter07.outerpackage.OuterExtendsE
funPublic
funPackage
funPrivate
*/
//: OuterPackage.java
package thinkinginjava.chapter07.outerpackage;
public class OuterPackage {
public void funPublic() {
System.out.println("funPublic");
}
void funPackage() {
System.out.println("funPackage");
}
protected void funProtected() {
System.out.println("funProtected");
}
private void funPrivate() {
System.out.println("funPrivate");
}
public static void main(String args[]) {
System.out.println("OuterPackage");
}
}
//: ExtendsE2.java
public class ExtendsE2 extends Extends2 {
public ExtendsE2() {
System.out.println("class ExtendsE2 initial");
}
public ExtendsE2(int marker) {
System.out.println("class ExtendsE2 initial with marker " + marker);
}
public static void main(String args[]) {
ExtendsE2 ee = new ExtendsE2();
ExtendsE2 ee2 = new ExtendsE2(1);
}
} /**Output
class A initial
class ExtendsE2 initial
class A initial
class ExtendsE2 initial with marker 1
*/
class Extends2 {
Extends2() {
System.out.println("class A initial");
}
}
//: ExtendsA.java
public class ExtendsA extends SuperA {
ExtendsA(int marker) {
super(marker);
System.out.println("Initialize ExtendsA with marker " + marker);
}
public static void main(String args[]) {
ExtendsA ea = new ExtendsA(10);
}
} /**Output
Initialize SuperA with marker 10
Initialize ExtendsA with marker 10
*/
class SuperA {
SuperA(int marker) {
System.out.println("Initialize SuperA with marker " + marker);
}
}
public class A {
//! final int b;
//! b = 20; // 语法错误;可以在构造器中初始化
void f(int i) {
final int a;
a = 10;
//! final static int c; // static不能用来修饰局部变量
// c = 10;
System.out.println(i);
}
}
//: FinalArg.java
public class FinalArg {
void f(final int i, final A a) {
//! i = 10; // 不能分配最终参数i
//! a = new A(); // 不能分配最终参数a
a.a = 10;
}
public static void main(String args[]) {
new FinalArg().f(1, new A());
}
}
class A {
int a;
}