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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

抽象类中为什么可以定义静态方法?有何意义?

3 个回复

倒序浏览
1、以前有个误区:一直以为抽象类中不能有静态方法(原因认为一有静态方法,就开辟了内存空间,就违背了抽象类不能实例化的定律)

2、现在知识更新:抽象类中可以定义静态方法
                      1:静态方法在方法区开辟的空间,又不是对象在堆内存开辟空间,所以更谈不上抽象类中实例化了。
                      2:static属于类,不需要再弄个子类继承实现方法了,而是直接抽象类名调用即可。{:soso_e130:}
回复 使用道具 举报
毕老师说,抽象类与普通类没有什么区别,只是抽象类不能创建对象罢了。只要记住这句话以后就不会出现问题了
回复 使用道具 举报
1.抽象类不能被实例化,不能直接用new来创建对象。所以要把其中的成员变量要定义成静态的,可以直接用类名访问,这样就不用对象来访问,可以不违反访问规则。
2.抽象类中定义静态的方法的话,就是每个继承此抽象类的子类,都有相同的功能,所以要把这个功能定义成静态的函数。但是要是静态的函数必须有函数体,否则会报异常。
3.抽象类中要是定义不是静态的函数话,若不是抽象函数,其他的必须要有函数体。
4.抽象类这样定义   abstract static  返回值类型 函数名();因为这样是给其两个限制 ,虚拟机不知道按那个权限编译。
希望我说的对你有帮助!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马