抽象类和面向对象

用关键字abstract修饰的类称为抽象类(abstract类)。

(1)抽象类可以有抽象方法,也可以有非抽象类方法。

对于抽象方法,只允许声明,不允许实现。任何带有抽象方法的类必须声明为抽象类。

如果一个非抽象类是某个抽象类的子类,那么它必须重写父类的抽象方法,给出方法体,

即在子类中将抽象方法重新声明,但必须去掉abstract修饰,同时保证声明的方法名字,返回类型,参数与父类的抽象方法完全相同,所以不允许使用final和abstract同时修饰一个方法。

(2)抽象类创建对象,不能new对象。可以使用子类的上转型对象创建抽象类的对象。

A a=new B();

//A 为抽象类,B为抽象类A的子类

上转型对象:把子类创建的对象的引用放到父类的对象中,得到该对象的一个上转型对象。
这个上转型对象在调用方法时就可能具有多种形态,不同对象的上转型对象调用同一种方法可能产生不同的行为。(多态)

面向抽象的核心思想:

(1)抽象细节

第一步,将经常需要变化的部分分割出来,将其作为abstract类中的抽象方法,不让设计者去关心实现的细节,避免所设计的类依赖于这些细节。

(2)面向抽象设计类

第二步就是面向抽象类来设计一个新类。

猜你喜欢

转载自blog.csdn.net/qian_qian_123/article/details/81706456