抽象类
前两天我们了解到了继承和多态。今天我们来了解一下抽象类。
如果一个class
定义了方法,但没有具体执行代码(即没有方法体),这个方法就是抽象方法,抽象方法用abstract
修饰。而抽象类只能由抽象方法组成。而抽象类有一个特点,就是没有实体对象,我们不能直接通过创建一个新的对象来引用抽象类,而是必须得用子类继承其中所有的方法再创建实例进行引用,这里特别要注意的是,子类在继承抽象类的时候,必须继承所有的方法,如果没有全部继承,那么这个子类也会变成一个抽象类。
有的同学可能会问,既然都是继承,一般的父类和抽象类到底有什么区别呢。一般父类和抽象类没有区别的。但是抽象类里的方法子类是一定要继承的,而一般父类的方法子类不一定要全部继承,就好比现实生活中父亲会打桌球,但是儿子不会说一定打桌球一样。而抽象类用现实的比喻来说,就是父亲会吃饭,他要求儿子也一定要会吃饭一样。抽象类的方法是强制性继承的。抽象类一般的用处是用于程序员互相交流用的,因为当你把包给另一个程序员的时候,这个程序员在继承父类方法时可能会不知道什么方法需要继承什么方法不需要继承,而抽象类则会简单易懂的告诉你,抽象类的所有方法都是需要继承的,这会大大减少程序员们敲代码的时间。
静态字段和静态方法
静态字段和静态方法的关键字就是static,这个代码的主要用处是可以让我们直接引用方法,不需要去定义一个对象,如果把这个代码去掉,我们在引用方法时就需要先定义一个对象才能使用。
这个定义了static和没有定义时在引用的时候的区别。