1.同包之间的继承
除了私有成员不能被继承和重写,其他都能被继承。且可以在子类内部访问和在子类外通过子类对象名访问。
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; //导入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
}
}
输出结果:
javac -d . A.java Test.java
java lisi.Test
该方法是public的
该方法是protected的
该方法是public的
- 在不同包之间继承的两个类,只有public类中的public和protected成员能被子类在内部访问,但是在子类外部,通过子类对象名只能访问父类的public成员。