第三章,第四章内容总结
---Mr yang
多态性: 发送消息给某个对象,让该对象自行决定响应何种行为。
通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用。
动态绑定 :
一、使用父类类型的引用指向子类的对象;
二、该引用只能调用父类中定义的方法和变量;
三、如果子类中重写了父类中的一个方法, 那么在调用这个方法的时候, 将会调用子类中的
这个方法;(动态连接、动态调用)
四、变量没有被重写(覆盖)的概念,”重写“的概念只针对方法,
1. 方法重载 :
在同一个类中定义了两个以上的同名的方法,
但是它们拥有不同的参数列表。
1.1 重载的条件:参数不同
a. 个数不相同
b. 类型不同
***c. 顺序不同
注意:与方法的返回类型无关 ,和访问修饰符无关
2. 方法重写 :
在子类中定义了一个和父类中相同的方法 ,
父类的方法在子类中就被覆盖了(隐藏了) .
3. 动态绑定:
父类的引用指向子类的对象,如果调用的方法
在子类中被重写,则调用子类重写了的方法。
如果调用的方法在父类中没有定义,则报错。
访问修饰符 :
1.public
2.protected
3.private
4. 默认的
方法修饰符:
1.static: 静态方法中不能访问非静态的变量和方法,也不能使用 this 和 super 关键字
static 关键字修饰的代码不依赖具体的对象实例 . 总是比普通的代码块先加载
2.final: 能修饰类 ,方法 ,属性。
2.1:final 修饰类时:该类不能被继承 .
2.2:final 修饰方法时:该方法不能被重写 .
2.3:final 修饰类的成员属性时:声明时就要赋值,或者在构造方法中给它赋值 .
final 修饰类的属性时:必须在声明时赋值
final 修饰局部变量: 如果在声明时没有赋值, 则在后面的代码中可以有一次给
它赋值的机会,一旦赋值则该变量的值不可更改。
final 修饰的变量是引用类型时指引用不能更改, 引用指向的对象的属性值是可
以更改的 .
Final 表示最终的
3.abstract: 修饰类,方法 .
抽象方法使用 abstract 修饰符修饰
抽象方法只能在抽象类中声明。
即:如果一个类中存在一个或以上的抽象方法,则该类也要声明为抽象类。
3.1: 抽象类不能实例化对象。