package cn.itcast_01_oop;
/*
* 面向对象 : 基于面向过程的 . 找一个对象帮你解决问题.
*
*
*
* 定义类--> 创建对象 -->调用方法
*
* 面向对象 三大特征 :
* 封装 -- 定义类 , 描述一类事物
* 成员变量
* 构造方法
* 成员方法
* get /set -- 取值 赋值
* toString -- 用字符串表示对象的
* hashCode() equals -- 保证对象唯一性
*
* 特有方法
*
* 继承
* 共性内容封装成一个类 , 子类 继承父类 . 复用
* 继承内容: 非私有 成员 都可以继承 .
* 单继承 : 只有一个亲爹
* 多层继承 : 爹还可以有爹
*
*
* 多态
* 前提条件:
* 1. 继承或者实现 关系 ( 二选一 )
* 2. 方法重写 (不重写不会错 ,但是没有意义)
* 3. 父类引用 指向 子类对象
* Fu f = new Zi();
* 成员特点:
* 编译时, 都看左边
* 运行时 , 成员方法看右边 .
*/
public class Demo1 {
public static void main(String[] args) {
// 创建对象
MianShiGuan m = new MianShiGuan();
// Person p = new Person();
// m.mianShi(p);
Student student = new Student();
m.mianShi(student);
Person p = new Student();
p.answer(); // 写 父类的 answer
}
}
class MianShiGuan {
public void mianShi(Person p) { //父类
ask();
p.answer();
ask();
p.answer();
}
public void ask() {
System.out.println("问问 ,你的刁难的问题 ");
}
}
class Person {
public void answer() {
System.out.println("问什么答什么 !!");
}
}
class Student extends Person{
// 重写
@Override
public void answer() {
System.out.println("聊天儿 ..... 聊高兴 就哦了 ");
}
}
|
|