大家好,今天我们来学习一下抽象类,抽象类是一个java实现多态的重要手段,那我们就来了解一下它的语法。
1.抽象类
1.1 抽象类概念.
在面向对象的概念中,所有的对象都是通过类来描绘的。但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类.知识点:
1、抽象类使用abstract修饰类.
2.抽象类当中可以包含普通类所能包含的成员.
3.抽象类和普通类不一样的是,抽象类当中可以包含抽象方法.
4.抽象方法是使用abstract修饰的,这个方法没有具体的实现.
5.不能实制化抽象类
6.抽象类存在的最大的意义,就是为了被继承.
7.如果一个普通类继承了一个抽象类,此时必须重写抽成类当中的方法.
8.如果一个抽象类A继承了一个抽象类B,此时A当中不需要重写B中的抽象方法,但是如果A再被普通类继承,就需要重写.
9、抽象方法不能被是私有的,也就是要满足重写的规则.
10.final可以吗!不可以 他和abstract是矛盾的
11.抽象类当中可以有构造方法.为了方便子类能够直接调用.
因为抽象类本身不初始化,我提供构造方法,相当于我子类能帮助抽象类来初始化.
在打印图形例子中,我们发现,父类中的shape方法好像并没有实际工作,主要的绘制图形都是shape的各种子类draw方法来完成的,像这种没有实际工作的方法,我们可以把它没计成一个抽象方法(abstract method),包含抽象方法的类我们称为抽象类.(abstract class)
1.2抽象类语法.
在Java中,一个类如果被abstract修饰称为抽象类,抽象类中被abstract修饰的方法称为抽象方法,抽象方法不用给出具体的实现体。
注意:抽象类也是类,内部可以包含普通方法和属性,甚至构造方法。
1.3 抽象类特性
1.抽象类不能直接实例化对象
2.抽象方法不能是private和final的
3. 抽象方法不能被final和static,因为抽象方法要被子类重写。
4.抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则子类也是抽象类,必须要使用abstract修饰。
5.抽象类中不一定包含抽象方法,但是有抽象方法的类一定是抽象类。
6.抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量。
好了,今天分享就到这里,谢谢大家!!!
标签:重写,abstract,抽象,子类,抽象类,方法 From: https://blog.csdn.net/2403_86949771/article/details/145246212