update
This commit is contained in:
parent
d7d4bdc084
commit
d77e9f903b
17
code/src/main/java/com/raorao/java/oop/Children.java
Normal file
17
code/src/main/java/com/raorao/java/oop/Children.java
Normal file
@ -0,0 +1,17 @@
|
||||
package com.raorao.java.oop;
|
||||
|
||||
/**
|
||||
* 子类.
|
||||
*
|
||||
* @author Xiong Raorao
|
||||
* @since 2018-09-06-9:27
|
||||
*/
|
||||
public class Children extends Father {
|
||||
|
||||
int sum = 2;
|
||||
int chlid = 3;
|
||||
|
||||
public void say() {
|
||||
System.out.println("this is children say!");
|
||||
}
|
||||
}
|
16
code/src/main/java/com/raorao/java/oop/Client.java
Normal file
16
code/src/main/java/com/raorao/java/oop/Client.java
Normal file
@ -0,0 +1,16 @@
|
||||
package com.raorao.java.oop;
|
||||
|
||||
/**
|
||||
* 测试.
|
||||
*
|
||||
* @author Xiong Raorao
|
||||
* @since 2018-09-06-9:28
|
||||
*/
|
||||
public class Client {
|
||||
|
||||
public static void main(String[] args) {
|
||||
Father f = new Children();
|
||||
System.out.println(f.num);
|
||||
f.say();
|
||||
}
|
||||
}
|
16
code/src/main/java/com/raorao/java/oop/Father.java
Normal file
16
code/src/main/java/com/raorao/java/oop/Father.java
Normal file
@ -0,0 +1,16 @@
|
||||
package com.raorao.java.oop;
|
||||
|
||||
/**
|
||||
* 父类.
|
||||
*
|
||||
* @author Xiong Raorao
|
||||
* @since 2018-09-06-9:26
|
||||
*/
|
||||
public class Father {
|
||||
int num = 1;
|
||||
public void say(){
|
||||
System.out.println("this is father say!");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -47,6 +47,11 @@
|
||||
- [静态内部类](#静态内部类)
|
||||
- [java 代码块](#java-代码块)
|
||||
- [代码块执行顺序](#代码块执行顺序)
|
||||
- [java 多态](#java-多态)
|
||||
- [多态实现的几种方式](#多态实现的几种方式)
|
||||
- [向上转型](#向上转型)
|
||||
- [向下转型](#向下转型)
|
||||
- [结论](#结论)
|
||||
- [参考文档](#参考文档)
|
||||
|
||||
<!-- /TOC -->
|
||||
@ -964,6 +969,76 @@ Iterator it = s.iterator();得到的it的真正类型是KeyIterator,是Iterato
|
||||
|
||||
静态代码块 > 构造代码块 > 构造函数
|
||||
|
||||
# java 多态
|
||||
|
||||
多态体现为父类引用变量可以指向子类对象:父类类型 变量名 = new 子类类型();
|
||||
|
||||
1、多态的前提是必须有子父类关系或者类实现接口关系,否则无法完成多态。
|
||||
2、在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。
|
||||
|
||||
## 多态实现的几种方式
|
||||
|
||||
1、普通父类多态
|
||||
|
||||
``` java
|
||||
class A{
|
||||
}
|
||||
|
||||
class B extends A{
|
||||
|
||||
}
|
||||
|
||||
A a = new B();
|
||||
```
|
||||
|
||||
2、抽象类多态
|
||||
|
||||
``` java
|
||||
abstract class A{
|
||||
|
||||
}
|
||||
|
||||
class B extends A{
|
||||
|
||||
}
|
||||
|
||||
A a = new B();
|
||||
```
|
||||
|
||||
3、接口多态
|
||||
|
||||
``` java
|
||||
interface A {
|
||||
|
||||
}
|
||||
|
||||
class B implements A{
|
||||
|
||||
}
|
||||
|
||||
A a = new B();
|
||||
|
||||
```
|
||||
|
||||
**同一个父类的方法会被不同的子类重写。在调用方法时,调用的为各个子类重写后的方法。**
|
||||
|
||||
## 向上转型
|
||||
|
||||
父类类型 变量名 = new 子类类型();
|
||||
|
||||
## 向下转型
|
||||
|
||||
子类类型 变量名 = (子类类型) 父类类型的变量;
|
||||
|
||||
如:Person p = new Student();
|
||||
Student stu = (Student) p
|
||||
|
||||
注意:如果是直接创建的父类对象,是无法向下转型为子类对象的。
|
||||
|
||||
## 结论
|
||||
|
||||
对于成员变量,看编译(静态)类型;
|
||||
对于成员方法,看运行(动态)类型;
|
||||
|
||||
# 参考文档
|
||||
|
||||
|
@ -51,7 +51,9 @@ Intel | 8.23 | 8.23(新投递) | 电面 | 8.24一面
|
||||
Keep | 8.31 | 8.31(新投递)
|
||||
小红书 | 8.31 | 8.31(新投递)
|
||||
中国银联 | 9.3 | 9.3(官网新投递)
|
||||
|
||||
三七互娱 | 9.5 | 9.5(官网新投递)
|
||||
去哪儿网 | 9.5 | 9.5(官网新投递)
|
||||
搜狗 | 9.5 | 9.5(官网新投递)
|
||||
|
||||
# 2 复习内容
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user