黑马程序员--包与包之间的调用

来源:互联网 发布:网络中了500万怎么领奖 编辑:程序博客网 时间:2024/04/26 13:12

 
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

 

前期我们说,包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。

/*

packb包中定义一个DemoB

*/

package packb;

public class DemoB

{

       publicvoid method()

       {

              System.out.println("demoBmethod run");

       }

}

 

/*

packa包中定义一个DemoA的类并且继承packb.DemoB

*/

package packa;

public class DemoA extends packb.DemoB

{

       publicvoid show()

       {

              System.out.println("demoashow run");

              method();2013/12/10星期二

       }

}

 

 

package pack;

class PackageDemo

{

       publicstatic void main(String[] args)

       {

              packa.DemoAa = new packa.DemoA();

              a.show();

       }

}

现在我们在主函数中直接调用packb.DemoB里的方法:

package pack;

class PackageDemo

{

       publicstatic void main(String[] args)

       {

              packb.DemoBb = new packb.DemoB();

d.method();

 

       }

}

我们发现这样也可以直接调用packb.DemoB里的方法,继承与不继承都能得到packb.DemoB中的方法,那样继承就没有什么意义了,所以现在我们用protected(保护)修饰符修饰packb.DemoB中的方法,只让自己的子类得到自己的方法。

就变成了:

/*

packb包中定义一个DemoB

*/

package packb;

public class DemoB

{

       protectedvoid method()

       {

              System.out.println("demoBmethod run");

       }

}

 

/*

packa包中定义一个DemoA的类并且继承packb.DemoB

*/

package packa;

public class DemoA extends packb.DemoB

{

       publicvoid show()

       {

              System.out.println("demoashow run");

              method();2013/12/10星期二

       }

}

 

 

package pack;

class PackageDemo

{

       publicstatic void main(String[] args)

       {

              packa.DemoAa = new packa.DemoA();

              a.show();

       }

}

现在只有继承packb.DemoBDemoA的类可以调用packb.DemoB中的method()

方法,而主函数不能再调用packb.DemoB中的method()方法。

 
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

 

0 0