抽象类与接口
来源:互联网 发布:电脑usb端口怎么打开 编辑:程序博客网 时间:2024/06/10 01:01
一、抽象类与抽象方法
1.一般将父类定义为抽象类,需要使用这个父类进行继承与多态的处理。
2.java中定义抽象类时,需要使用abstract关键词,其语法如下:
[权限修饰符] abstract class 类名 { 类体 }
① abstract 修饰类 抽象类
② abstract 修饰方法 抽象方法
3.抽象类注意:
1.成员变量: 可以有变量 也可以有常量
2.成员方法 : 可以有抽象方法 也可以有成员方法
3.构造方法:
注意:抽象类中不一定有抽象方法 但抽象方法一定存在抽象类中
注意:抽象类的子类 必须重写抽象父类的所有抽象方法
4.抽象方法没有实现部分
注意:抽象类中抽象方法 强制子类去重写抽象方法
注意:抽象类 不能实例化对象(创建对象)
创建对象的方式:比照多态来创建
5.使用abstract关键字定义的方法称为抽象的方法。
抽象类除了被继承外没有任何意义。
6.abstract与那些关键词不能共存?
① (static【修饰方法 用类名去调用 abstract修饰抽象方法没有方法的实现
没有实现部分的方法,只能是方法的声明 不能直接调用 所有不能共存】)
② (final【修饰方法不能被重写 abstract修饰方法就是为了子类重写方法 所以不能共存)
③ (private【修饰方法 只能本类访问 子类访问不到 谈不上重写方法了 所以不能共存)
二、接口
接口:
1.狭义的接口 interface关键词修饰的叫做接口
2.广义的接口 规则
定义接口
interface 接口名{}
接口特点
1.接口中只能声明抽象方法
2.系统如果你不写 public abstract 关键词修饰 接口中声明方法
那么系统会帮你 默认添加上
建议:最好写上默认的修饰词
3.接口也不能实例化对象(谁要用接口 谁就要去实现接口中的方法)
可以使用多态方式创建实例化实现类的对象
4.接口实现 使用 implementation 关键词
接口注意:
1.成员变量:只能有常量 public static final 常量名 = 初值; 当你在接口中声明变量时 系统默认 会是 public static final修饰
[修饰符]interface 接口名 [extends 父接口名列表]{[public] [static] [final] 常量;[public] [abstract] 方法;
书写建议 最好写上
2.成员方法: 只有抽象方法 没有成员方法
3.构造方法:没有构造方法
类和类的关系:
类和类之间 是继承关系 单继承 和多继承类和接口的关系:
类和接口之间 是实现的关系 可以单实现 也可以多实现
(接口就像干爹 几个都可以)- 接口和接口的关系
接口和接口之间 可以单继承 也可以 多继承
interface drawTest{ public void draw();}class ParallelogramgieUseInterface implements drawTest{ public void draw() { System.out.println("平行四边形.draw()"); }}class SquareUserInterface implements drawTest{ @Override public void draw() { System.out.println("正方形.draw()"); }}public class QuadrangleUserInterface { public static void main(String[] args) { drawTest[] d = { new SquareUserInterface(),new ParallelogramgieUseInterface() }; for (int i = 0; i < d.length; i++) { d[i].draw(); } }}
- 抽象类与接口
- 接口与抽象类
- 抽象类与接口
- 抽象类与接口
- 抽象类与接口
- 抽象类与接口
- 接口与抽象类
- 抽象类与接口
- 接口与抽象类
- 抽象类与接口
- 抽象类与接口
- 抽象类与接口
- 接口与抽象类
- 抽象类与接口
- 抽象类与接口
- 抽象类与接口
- 接口与抽象类
- 接口与抽象类
- juicer 管道符
- Netty Buffer(缓冲)
- 解决tensorflow下的报错。mportError: libcudart.so.8.0:
- Qt中网络编程(网络接口,TCP,UDP)
- 站内搜索
- 抽象类与接口
- Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.4
- 5 款最酷的 Linux 终端模拟器!
- 「BZOJ4332」「JSOI2012」分零食
- 字符型图片验证码识别完整过程及Python实现
- TCP/UDP通信编程在Qt中的实现方法
- python3的字符串编码问题
- spring-boot-starter-actuator报错
- jzoj3501 【NOIP2013模拟联考15】消息传递(news) 树形dp