黑马程序员技术交流社区

标题: Java语言的修饰符几个问题 [打印本页]

作者: ﹎◇waiting﹎    时间: 2012-8-1 13:48
标题: Java语言的修饰符几个问题
为什么抽象类不能被实例化?
抽象类及抽象方法不能被final修饰符修饰(原因?)
为什么final不能用来修饰构造方法?
为什么静态方法中不能用this关键字,super关键字?
作者: 张振纲    时间: 2012-8-1 14:08
1.抽象类不可以被实例化是因为抽象方法没有意义
2.被final修饰的类不能被继承,被final修饰的方法不可以被复写,抽象类不被复写就没有意义,所以不可以被final修饰
3.构造函数是对本类特有对象进行初始化的,不可通过继承得到,所以不用final修饰
4.静态代表数据共享,即全局通用,静态方法代表类的方法,而this 指当前对象调用,super指超类,都是指实例的方法
作者: 孙建飞    时间: 2012-8-1 14:20
为什么抽象类不能被实例化?
回答:抽象类中的都是抽象方法(半成品,不能用),所以创建实例没有意义。
抽象类及抽象方法不能被final修饰符修饰(原因?)
回答:如果想使用抽象类中的抽象方法就必须由子类全部复写然后建立子类的对象才能调用,final关键字修饰后的方法都不能被子类复写,所以不能用final关键字。
为什么final不能用来修饰构造方法?
回答:构造方法是用来初始化对象的。但是用final修饰的方法不能修改,所以无法为对象赋值。
为什么静态方法中不能用this关键字,super关键字?
回答:因为this代表当前的对象。而静态成员(静态方法和静态常量)是优先于对象存在的。所以静态方法中不能出现this关键字和super关键字
作者: ﹎◇waiting﹎    时间: 2012-8-3 11:04
问题已经解决了,谢谢各位的指导




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2