abstract
只可以修饰类,表示类是不可实例化。
还可以修饰方法,表示在本类中只做声明,没有实现,实现要到他的子类,他告诉编译器,这个类要为这个方法预留方法入口,等他的可实例化的子类实例化时,用子类正确的方法入口进行绑定,就是动态绑定。
注意:abstract不可以修饰属性, 修饰属性也没有意义,但是我觉得这种问题要从语意上来看,abstract对于属性没有什么意义.
static 和 abstract 永远不能放在一起用
如果一个方法是静态的,它就必须自力更生,自己实现该方法。静态方法必须被实现
如果一个方法是抽象的,那么它就只表示类所具有的功能,但不会去实现它,在子类中才会去实现它
静态方法用来表示某个类所特有的功能,这种功能的实现不依赖于类的具体实例,也不依赖于它的子类。既然如此,当前类必须为静态方法提供实现,即一个静态的方法不能被定义为抽象方法。
|