黑马程序员技术交流社区

标题: 报错,怎么回事? [打印本页]

作者: 李跃达    时间: 2013-1-30 14:46
标题: 报错,怎么回事?
  1. abstract class Person{
  2. private abstract String newPreson ();//编译是这句报错,说什么类型错误,怎么回事?
  3. }
复制代码

作者: 谢毅    时间: 2013-1-30 16:14
因为抽象类不能被实例化,只有实现了它所有方法的子类才能被实例化,而你把方法用private私有修饰,子类就不能继承该方法了,继承的权限至少是peotected或者public,所以总结就是本身不能被实例化,方法又不能被继承,java是不允许这样无意义的定义的。
作者: 黑马张旭    时间: 2013-1-30 17:13
某个方法同时拥有 abstract 和 private 修饰符。这是不允许的,因为私有方法是从类内部访问的,但抽象方法是从类的外部继承的。
作者: 王立浩    时间: 2013-1-30 17:51
抽象方法或者说是抽象类将其他类中的共有部分抽取出来,简化代码提高扩展性,肯定是对外开放的
将抽象方法私有了  其他类如何去实现它呢?
作者: 钱志新    时间: 2013-1-31 00:43
抽象类是不能实例化的,关键字是abstract ,不能实例化意思就是不能通过new关键字来创建实例,私有类是没有子类的,意思就是不能被继承,断子绝孙了,但是可以实例化。你现在用private修饰就表明它是能够实例化对象,你又用abstract修饰,表明它又不能实例化,这让JVM陷入困境,只能给你报错了。改进方法就是消除矛盾,去掉abstract或者把private该成public或protected
作者: 杨杨    时间: 2013-1-31 11:41
这么多人回答啊 我在补充一小点 newPreson 这样写到一块了肯定报错




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