1.同包之間的繼承
除了私有成員不能被繼承和重寫,其他都能被繼承。且可以在子類內(nèi)部訪問和在子類外通過子類對象名訪問。
1.不同包之間的繼承
//文件名:A.java
package zhangsan;
public class A
{
public void show1()
{
System.out.println("該方法是public的");
}
protected void show2()
{
System.out.println("該方法是protected的");
}
}
//文件名:Test.java
package lisi;
import zhangsan.A; //導(dǎo)入zhangsan包中的類A
class B extends A
{
void f()
{
show1(); // ok
show2(); // ok
}
}
class Test
{
public static void main(String[] args)
{
B b1 = new B();
b1.f();
b1.show1(); // ok
//b1.show2(); // error
}
}
輸出結(jié)果:
javac -d . A.java Test.java
java lisi.Test
該方法是public的
該方法是protected的
該方法是public的
- 在不同包之間繼承的兩個類,只有public類中的public和protected成員能被子類在內(nèi)部訪問,但是在子類外部,通過子類對象名只能訪問父類的public成員。