面向抽象编程,上转型对象及其操作权限,多态性,抽象类和方法

mac2025-10-16  6

所谓面向抽象编程,是指当设计某种重要的类时,不让该类面向具体的类,而是抽象的类,即所设计的类中的重要数据是抽象类声明的对象,而不是具体类声明的对象。 抽象类只关心操作,并不关心这些操作的具体算法,这样就可以让设计者将更多的精力投入到整体的设计中,而无需关系具体的实现。

1.对象的上转型对象 当用子类创建一个实例对象,并把这个对象的引用赋给父类的声明变量,我们称此时得到的父类的对象是子类对象的上转型对象。 假设Animal类是Tiger类的父类,有:

Animal a; a = new Tiger();

Animal a; Tiger b = new Tiger(); a = b;

这时对象a是对象b的上转型对象。

对象和对象的上转型对象的操作权限如下图: 大家自己可以写例子验证一下。

2.多态性 其实多态性并不难理解。简单来说多态性就是指父类的某个方法被其子类重写,从而产生各自的功能行为,或者实现接口方法,或者抽象类方法的实现。

3.抽象类和抽象方法 (1)用关键字abstract修饰的方法称为抽象方法。例如:

abstract int mi(int x,int y);

1)对于抽象方法,只允许声明,不允许实现。 2)不允许用final和abstract同时修饰一个方法或类。 3)不允许用static修饰抽象方法

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

abstract class A{ ... }

1)抽象类中既可以有抽象方法也可以有非抽象方法,而非抽象类中不能有抽象方法 2)抽象类不能用new运算符创建对象。 3)抽象类的一个非抽象子类必须重写父类的所有抽象方法,并给出方法体。 4)抽象类的抽象子类可以重写父类的抽象方法,也可以继承。 5) 抽象类声明的对象可以做其子类的上转型对象,调用子类重写的方法。

最新回复(0)