南沙网站建设公司哪家好,c2c的区别,如何推广视频号,文化网站源码1、抽象类概念
在面向对象的概念中#xff0c;所有的对象都是通过类来描绘的#xff0c;但是反过来#xff0c;并不是所有的类都是用来描绘对象的#xff0c;如果一个类中没有包含足够的信息来描绘一个具体的对象#xff0c;这样的类就是抽象类。比如#xff1a; 说明所有的对象都是通过类来描绘的但是反过来并不是所有的类都是用来描绘对象的如果一个类中没有包含足够的信息来描绘一个具体的对象这样的类就是抽象类。比如 说明
1矩形、三角形、椭圆都是图形因此和Shape类之间的关系都是继承关系
2虽然图形类Shape中也存在draw的方法但由于Shape类并不是具体的图形因此其内部的draw的方法实际是没有办法实现的。
3由于Shape类没有办法描述一个具体的图形导致其draw方法无法具体实现一次可以将Shape类设计为“抽象类”。 在打印图形案例中我们发现父类Shape中的draw()方法并没有什么实际工作主要的绘制图形都是有Shape的各种子类的draw()方法来完成的像这种没有实际工作的方法我们可以把它设计成一个抽象方法包含抽象方法的类我们称之为抽象类。
2、抽象类语法
在java中一个类如果被abstract修饰则该类被称为抽象类抽象类中被abstract修饰的方法称为抽象方法抽象方法不用给出具体的方法体。
代码 注意抽象类也是类内部也可以包含普通方法、成员变量、构造方法
3、抽象类特性
1抽象类不能直接实例化对象
代码
Shape.java Test.java 2抽象方法不能被private修饰
代码如下 3抽象方法不能被final和static修饰因为抽象方法要被子类重写
代码1 代码2 4抽象类必须被继承并且子类要重写父类中的抽象方法否则子类也是抽象类必须使用abstract修饰。
当我们对抽象类的子类补充写父类的抽象方法时会报一下错误 但是如果也让子类被abstract修饰则不会报错 5抽象类不一定包含抽象方法但是抽象方法一定是抽象类
6抽象类中可以有构造方法供子类创建对象时初始化父类的成员变量
4、抽象类的作用
抽象类本身不能被实例化要想使用只能创建抽象类的子类然后让子类重写抽象类中的方法。
有人可能有疑问普通的类也可以被继承普通的方法也可以被重写为什么非得用抽象类和抽象方法呢
确实如此但是使用抽象类相当于多了一重编译器的校验。
如何理解校验
比如抽象类中有抽象方法则子类继承时父类中的抽象方法必须被重写否则就会报错。