package baseDemo1; /** * 类之间的继承和访问 * */ public class Demo1 { public void method1() { } protected void method2(){ } void method3(){ } private void method4(){ } public static void main(String[] args){ /** * Demo1访问同一个package中的类Demo5。 * Demo5不是public类 * 结论:类的修饰符public是针对不同包之间的访问 * 类修饰符,对本包之间的类访问,没有影响 * */ Demo5 d5 = new Demo5(); d5.method1(); //public OK d5.method2(); //protected OK d5.method3(); //default OK //d5.method4(); //private Error /** * 访问不同package中的类Demo2 * 结论:只能访问不同package中的public类中的public成员 */ baseDemo2.Demo2 d2 = new baseDemo2.Demo2(); d2.fun1(); //public OK //d2.fun2(); //protected Error //d2.fun3(); //default Error //d2.fun4(); //private Error /** * Demo3继承同一个package中的类Demo1 * 同一个package中类的继承: 子类能继承父类除了private之外的所有成员 * */ Demo3 d3 = new Demo3(); d3.method1(); //public OK d3.method2(); //protected OK d3.method3(); //default OK //d3.method4(); //private Error /** * Demo4继承不同的package中的类Demo2 * 不同package中,类的继承: 子类只能继承父类的public成员 * */ Demo4 d4 = new Demo4(); d4.fun1(); //public OK //d4.fun2(); //protected Error //d2.fun3(); //default Error //d2.fun4(); //private Error } } /** * Demo3继承同一个package中的类Demo1 * */ class Demo3 extends Demo1{ } /** * Demo4继承不同的package中的类Demo2 * */ class Demo4 extends baseDemo2.Demo2{ } class Demo5{ public void method1() { } protected void method2(){ } void method3(){ } private void method4(){ } }
<strong>package baseDemo2;</strong> public class Demo2 { public void fun1(){ } protected void fun2(){ } void fun3(){ } private void fun4(){ } }
原文地址:http://blog.csdn.net/u011402596/article/details/41699097