黑马程序员技术交流社区

标题: 哪里出错了? [打印本页]

作者: 邵景伦    时间: 2014-3-22 14:59
标题: 哪里出错了?

abstract class Name

{

    private String name;

    public abstract boolean isStupidName(String name) {}

}


作者: my_android_drea    时间: 2014-3-22 15:04
本帖最后由 my_android_drea 于 2014-3-22 15:06 编辑

完整的代码呢?抽象类的方法要覆盖,大括号改为分号。
作者: 我感觉优势很大    时间: 2014-3-22 15:10
既然那个方法被定义为抽象方法了,为什么还要加大括号哩
  1. abstract class Name

  2. {

  3.     private String name;

  4.     public abstract boolean isStupidName(String name) ;

  5. }
复制代码

作者: 追逐    时间: 2014-3-22 15:16
抽象类中不能出现具体的实现
把public abstract boolean isStupidName(String name) {}  改为
public abstract boolean isStupidName(String name) ;
把大括号改成分号就行了。
抽象类的特定:
1,抽象方法一定定义在抽象类中。
2,抽象方法和抽象类都必须被abstract关键字修饰。
3,抽象类不可以用new创建对象。因为抽象方法没意义。
4,抽象类中的抽象方法要被使用,必须由子类写所有的抽象方法后,建立子   类对象调用。如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类


抽象类比一般类多了个抽象函数,就是在类中可以定义抽象方法
抽象类不可以实例化

特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象。
作者: 龙健    时间: 2014-3-22 22:04
抽象方法不能有方法体
作者: Sage    时间: 2014-3-22 23:36
  1. // 使用abstract关键字修饰的类是抽象类,抽象类不能创建对象
  2. abstract class Name {
  3.         private String name;

  4.         // abstract表示抽象,isStupidName方法被abstract修饰后,为抽象方法
  5.         // 没有方法体(即方法后没有{})的方法称为抽象方法,这里要将{}改为;
  6.         // 抽象方法出现的意义:为更好的实现多态
  7.         public abstract boolean isStupidName(String name);

  8. }
复制代码





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