学习日记 - OOP - 01
关于Java, 关于OOP。
没有系统学习过OOP Programming, 一直搞不清楚interface的用法和意义。编程水平主要停留在python,R等函数性编写,调用,一看大型程序就蒙B。
看的每一本教材都能理解,接口(interface)就是通用的使用规则,比如遥控器,运输工具(可以是汽车,火车),etc。。
可是由于没有项目经验,还是不得其所。
自己编写了最简单的一个实现。。请问,如果只是声明的特殊性(用interface来声明),我在项目里用类名来声明又有何不妥?无非是vechicle替换成了car。该call的方法还是固定的方法名。好像也行?
列举一下我目前理解存在的问题:
- Interface到底在项目里体现了什么作用?除了compile-time里的check;怎么理解对后人工作的帮助?
- 拿Interface名来声明变量有什么好处?
- 怎么叫重新定义interface?那样不是interface和类方法要一起变,也很麻烦?
看了这个帖子的回答,感觉解释了我的主要困惑:https://www.iteye.com/topic/1120032?page=3
给业务系统写的接口(给客户用),和给框架系统写的接口(给程序员用),意义是不一样的。接着引发了我的新的问题:
当我们说,A公司提供了接口(比如一个数据库的jbdc接口),实际上(编程里)我们得到了什么?难道就是一个声明类type的权利?
interface vechicle {
public void start();
}
interface mediaplayer {
public void playMusic();
}
class car implements vechicle,mediaplayer {
public void start(){
System.out.println("starting my car...");
}
public void playMusic(){
System.out.println("playing music...");
}
}
public class Main {
public static void main(String[] args) {
vechicle v1 = new car();
v1.start();
((mediaplayer) v1).playMusic();
}
}