我发现我还是没搞清楚多态这个东西, 今天正好有时间研究一下.
好渴我没找到哪里能接水好渴啊啊啊啊啊原来超类就是父类吗我勒个去
继承
首先是继承,继承在概念上很好理解. 这篇文章(http://www.cnblogs.com/chenssy/p/3354884.html) 中提到了关于继承的三个注意点:
- 构造器12对于构造器而言,它只能够被调用,而不能被继承。 调用父类的构造方法我们使用super()即可。子类会默认调用父类的构造器,但如果没有默认的父类构造器,子类必须要显示的指定父类的构造器,而且必须是在子类构造器中做的第一件事(第一行代码)
这个主要是讲了子类怎么调用父类的构造器
2 . protected: 可被1)此类的子类; 2)位于同一包的子类 访问.
private: 可被1)此类 访问
附上一个方便分类的图表(https://stackoverflow.com/questions/215497/in-java-difference-between-package-private-public-protected-and-private)
3 . 向上转型
向上继承是把子类放入原本是父类格式的参数/变量来用
这篇文章还说明了继承的缺陷:
-
- 耦合的定义:
耦合性(英语:Coupling,dependency,或称耦合力或耦合度)是一种软件度量,是指一程序中,模块及模块之间信息或参数依赖的程度。
多态
|
|
重载(overload)和重写(override)
重载: 方法名字相同, 参数不同, 返回值可同/可不同.
重写: 返回值/参数不变, 内容重写.
2.1 多态的实现条件
Java实现多态有三个必要条件:继承、重写、向上转型。
继承:在多态中必须存在有继承关系的子类和父类。
重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。对于Java而言,它多态的实现机制遵循一个原则:当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法。
2.2 多态的实现形式
1) 基于继承
2) 基于接口
这里又涉及到了接口这个小妖精
-L= 有点累 一会再写