Java抽象类、继承及多态和适配器的实现

方法重写是Java语言多态的特性,必须满足以下条件

在子类中,方法名称与父类方法名称完全相同

方法的参数个数和类型完全相同,返回类型完全相同

方法的访问修饰符访问级别不低于父类同名方法的访问级别

在方法上添加@override注释,如果报错说明不是重写

方法重写限制

final修饰的父类方法在子类中不能被重写

static修饰的父类方法在子类中不能被重写,只能覆盖

super关键字

super关键字和this类似,super修饰的是父类的对象,如super();调用的是父类的默认无参构造器

 

Java抽象

抽象类特点

抽象类通常应包含抽象方法,也可以包含非抽象方法

抽象类不能使用final关键字修饰

抽象类自身不能够实例化

抽象类就是用来被继承

 

抽象类的继承

子类必须实现父类所有的抽象方法

如果子类已经override实现父类的抽象方法,间接子类可以不用实现该方法。

 

适配器

定义一个适配器,类名+Adapator。比如MamalAdapator。继承给父类所有的方法一个空的实现。后面实例的类继承这个适配器,就可以选择性的重写实现部分父类的方法而不会报错。

抽象类只提供一个抽象方法然后供子类去继承和重写override,然后特别是override的这个功能,可以做到比如Dog.eat,Cat.eat,不同的类,有不同的方法实现,但是方法名称都相同,给开发提供了极大的灵活性,后面的程序员接手开发的时候,比如需要再新增Tiger.eat,只需要再写一个Tiger类继承父类再override他的eat方法就可以了。

/** * 1 使用Eclipse 工具建立一个普通Java控制台应用程序, 自定义一个类继承Counter 类, * 并根据理解定义在Counter类中定义的抽象方法对父类的抽象方法进行实现,体会普通类继承 * 抽象类必需做什么? 不同子类在继承Counter抽象类并实现抽象方法时的算法和什么有关. */ public class Test { public static void main(String[] args) { //用父类的类型去new一个子类 Counter cou = new Add(); //用父类的类型去调用子类的addition方法并实现 System.out.println("3+9的和是"+cou.addition(3,9)); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwgzdy.html