java抽象类和接口的多态
来源:互联网 发布:wp软件开发 编辑:程序博客网 时间:2024/06/08 02:43
抽象类abstract class
用关键字abstract修饰的类叫做抽象类,抽象类不能被实例化,即不能new出来一个抽象类的对象(实例)。
抽象方法
用abstract关键字所修饰的方法叫做抽象方法。
抽象方法必须定义在抽象类中。
抽象方法有声明,无实现(没有花括号{},有花括号但是内容为空也是一种实现,空实现)。
相对应的有声明有实现的方法可以叫做具体方法。
抽象类和抽象方法的关系
抽象方法必须定义在抽象类里面。
如果一个类包含了抽象方法,那么这个类一定要声明成抽象类。
如果某个类是抽象类,那么这个类既可以包含抽象方法,也可以包含具体的方法(有声明,有实现)。
抽象类中如果全是具体方法也是允许的;抽象类也可以是空的,即什么也不包含。
接口与抽象类的关系
接口的地位等同于class,接口中的所有方法都是抽象方法。
接口中在定义方法的时候,可以使用abstract关键字,也可以省略abstract关键字,(大多数时候都是省略的),方法仍是抽象的,不能有实现的花括号。
接口和抽象类的区别:
接口用关键字interface声明。
接口中的方法必须全是抽象方法;而抽象类中的方法,可以有抽象的,也可以有具体的方法。
类可以实现接口,用关键字implements。Java是单继承的,但是却可以实现多个接口。(一个类可以同时继承另一个类,并且实现多个接口。)
如果一个类实现了一个接口,并且这个类不是抽象类,那么这个类必须实现这个接口中的所有方法。如果是抽象类,则无需实现接口中的所有方法。
接口中的所有方法自动地属于public,因此在接口中声明方法时,不必提供关键字public。但是在实现接口时,必须把方法声明为public。
在接口中还可以定义成员变量(常量),接口中的域被自动地设为public static final。
然而,接口绝不能含有实例域,也不能在接口中实现方法,提供实例域和方法实现的任务应该由实现接口的那个类来完成。
接口的特性
接口不是类,不能使用new运算符实例化一个接口。
尽管不能构造接口对象,却能声明接口变量,接口变量必须引用实现了接口的类对象。
Comparable x;
x=new Employee(…);
与使用instanceof检查一个对象是否属于某个特定类一样,也可以用instanceof检查一个对象是否属于某个特定的接口。
接口也可以像类一样建立继承关系。
尽管每个类只能拥有一个超类,但却可以实现多个接口,使用逗号将实现的各个接口分隔开。
抽象类的特性
- java 抽象类和接口和多态的使用
- java中抽象类和接口的多态
- java抽象类和接口的多态
- Java抽象类和接口的区别
- Java抽象类和接口的区别
- java抽象类和接口的区别
- Java 抽象类和接口的区别
- java接口和抽象类的区别
- java接口和抽象类的区别
- JAVA 抽象类和接口的区别
- Java的抽象类和接口
- Java抽象类和接口的区别
- java接口和抽象类的区别
- java抽象类和接口的区别
- java接口和抽象类的区别
- java接口和抽象类的区别
- Java抽象类和接口的区别
- Java抽象类和接口的区别
- SVN添加文件时的错误处理:...\conf\svnserve.conf:12: Option expected
- 上传的文件放在SVN服务器的哪个目录下
- 单片机小白学步系列(一) 单片机的前世今生
- mysql查询慢的解决方法
- Mysql中的基础函数
- java抽象类和接口的多态
- Bean的创建方式
- 浅显易懂的SpringMVC中@Controller控制器配置
- C#调用非托管函数参数为Void* 时,方法
- avascript中的自执行匿名函数
- Spring常用注解
- android 的 setTag
- 在SpringMVC中将view的数据封装成Model的方法
- Nginx源码分析一