JavaEE-09-抽象类(Java)
抽象关键字:
abstract
抽象类定义:
在面向对象的概念中,所有的对象都是通过类来描绘的。
但是反过来,并不是所有的类都是用来描绘对象的。
如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
抽象方法:一个没有方法体的方法应该定义为抽象方法。(空方法体也算方法体)
抽象类:一个类中如果有抽象方法,该类必须定义为抽象类。
抽象类特点:
1.方法只有声明没有方法体时,该方法就是抽象方法,需要被abstract修饰。
抽象方法必须定义在抽象类中,所以该类必须也被abstract修饰。
2.抽象类不可以被实例化。(因为调用抽象方法没意义)
3.抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
4.抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
5.构造方法,类方法(用static修饰的方法)不能声明为抽象方法。
抽象方法注意事项:
1.abstract不能和private同时使用。
因为抽象方法没有方法体,如要使用它,就必须有个子类来继承它,子类的方法覆写抽象方法。
如果方法是private,那就没办法进行覆写了。
2.abstract不能和final同时使用。
同理,final方法不可修改,不可继承。
3.abstract不能和static同时使用。
因为static方法必须有方法体,而abstract方法没有方法体。
抽象类和一般类的异同点:
相同点:抽象类和一般类都是用来描述事物的,都在内部定了成员。
不同点:
1.一般类有足够的信息描述事物;
抽象类描述事物的信息可能不足。
2.一般类中不能定义抽象方法,只能定义非抽象方法;
抽象类中可定义抽象方法,同时也可以定义非抽象方法。
3.一般类可以被实例化;
抽象类本身不可以被实例化。(但是,可通过多态的方式,靠子类来实现实例化)
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号