抽象类和接口
抽象类:用abstract关键字来修饰一个类时,这个类叫做抽象类 某种意义上来讲,抽象方法就是被用来重写的,在父类声明的抽象方法(只需声明,不需要去实现)要在子类里边重写,如果子类不想重写,那么再在这个子类里边把这个抽象方法再定义为抽象方法,让这个子类的子类去重写它。 这里有一个规则: 既然父类里面的方法是抽象的,那么对于整个类来说,它就有一个没有实现的方法,这个方法不知道怎么去实现,那么这个类是就是残缺不全的,因此这个类应该被定义为一个抽象类。 java语言规定,当一个类里有抽象方法的时候,这个类必须被声明为抽象类 子类继承父类时,如果这个父类里面有抽象方法,并且子类觉得可以去实现父类的所有抽象方法,那么子类必须去实现父类的所有抽象方法;反之,这个父类里面的抽象方法,子类如果觉得实现不了,那么把就子类也声明成一个抽象类。 抽象方法:用abstract来修饰一个方法时,该方法叫做抽象方法 接口:抽象方法和常量值定义的集合 本质:接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。 java在接口里面声明的抽象方法可以不写abstract关键字来标识,因为接口里面所有的方法都是抽象的,因此这个“abstract关键字默认都是省略掉的是单继承,但是现实是生活中很多时候都得是多继承,为了实现多继承,可以选择一个类继承,把其他别的类都封装成接口