A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 381890216 于 2015-9-22 18:05 编辑

一个类中的静态方法与对该类绑定,类加载该静态方法即加载以初始化类,
试着写了下面的程序:以子类的静态方法复写父类的静态方法,然后输出。。。

  1. package PackageDemo1;

  2. public class FatheTest {
  3. public static void father(){
  4. System.out.println("a");
  5. }
  6. }
  7. class SonTest extends FatherTest{
  8. public static void father(){
  9. System.out.println("b");
  10. }
  11. }
  12. public static void main(String[] args){
  13. FatherTest a = new SonTest();
  14. a.father();
  15. FatherTest b = new FatherTest();
  16. b.father();
  17. SonTest.father();
  18. FatherTest.father();
  19. Class c = a.getClass();
  20. Class d = b.getClass();
  21. System.out.println(c);
  22. System.out.println(d);
  23. }
复制代码


编程结果为a
a
b
a

class PackageDemo1.SonTest
class PackageDemo1.FatherTest
如果”静态方法与类绑定,与对象无关“的说法是正确的,绿字跟红字的结果是否相互矛盾了(因为我理解为c属于SonTest类,d属于FatherTest类)?我应该怎样理解才行?





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马