第三章②抽象类

2019-05-04  本文已影响0人  犀首_0c79

类、构造器、属性、方法

抽象的使用

就是父类无法全部具体实现,而是由子类提供具体实现的,对象的,类

abstract:抽象的,可以用来修饰类、方法

abstract修饰类(抽象类)

①不可被实例化

②抽象类有构造器(凡是类都有构造器,为了保证创建类的时候有实例化的过程)

abstract修饰方法(抽象方法)

①格式没有方法体、没有{}。例如public abstract void eat();

②抽象方法只保留方法的功能,具体的执行,交给继承抽象类的子类,由子类重写此抽象方法

③抽象方法所在的类一定是抽象类

④抽象类可以没有抽象方法

⑤若子类继承抽象类,重写了所有的抽象方法:此类就能实例化,创建对象

⑥若子类继承抽象类,没有重写所有的抽象方法:此类中仍然有抽象方法,则此类必须声明为抽象的,那么此类就不能实例化,创建对象

⑦不影响多态的使用,还是调用子类的方法

抽象类的子类如果没有重写抽象类中的任何一个方法,那么这个子类必须也是抽象类,因为抽象方法所在的类必须是抽象类,否则不满足抽象规则。要么重写方法,要么定义抽象类。因为子类继承了父类,子类可以调用父类非私有的方法,这一调用就调用到抽象方法上了。


抽象类:是在继承基础上衍生出来的,有继承才有抽象,光抽象没什么用

多态:也是在继承基础上衍生出来的,将子类赋给父类,用父类对象调用子类的方法

注意

abstract不能修饰:属性、构造器

属性

①规定不让用

②这是一种思想,抽象的目的①对于类来讲,不能让此类实例化②对于方法来讲,让子类重写(子类可以覆盖)。

③属性不能覆盖,子类用子类的,父类用父类的,都存在堆空间

构造器

①因为构造器不能重写

abstract不能和private、final、static共用

private:私有的,出了类就能访问,子类不能覆盖(或重写)声明为private的方法

final:最终的,不能被重写,而abstract又需要子类重写父类的方法

static:可以修饰属性、方法、代码块、内部类

因为一个声明为静态的就可以通过类来调用,而abstract修饰的不能调用

上一篇 下一篇

猜你喜欢

热点阅读