| 
 
| 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("聊天儿 ..... 聊高兴  就哦了 ");
 }
 
 }
 
 
 
 | 
 |