课堂笔记06.类.子类与父类

复习:
1.构造方法
2.this关键词 - 当前对象
3.方法的重载
    前提:同一个类中
4.引用类型数组
    步骤:
        Student[] stu = new Student[3];
        stu[0] = new Student();
5.二维数组

_________________________________________________
根据业务要求 提取对象:
    1个酒店,n个房间,n个客户

相关类:
    Guest类:
        成员变量:
            姓名
            年龄
            id(身份证)

        成员方法:

    Room类:
        成员变量:
            房间号
            客户(Guest)

        成员方法:

    Hotel类:
        成员变量:
            Room(房间)

        成员方法:
            -入住
            -退房
            -查房


java写代码顺序:
    先有类,再有对象
___________________________________________________

飞机大战:
提取对象:
    大敌机 小敌机 小蜜蜂 英雄机 子弹

提取相同的成员变量和成员方法出来,成为一个类:
父类(基类):
    成员变量:
        int x, int y,图片 ,图片的宽,图片的高
    成员方法:
        move()

子类(衍生类/扩展类):
    大敌机 
        成员变量
            int blood,
            int speed;
            int score;

        成员方法
            
    小敌机 
        成员变量
             int blood,
            int speed;
            int score;

        成员方法
            
    小蜜蜂 
        成员变量:
            int blood,
            int speed;
            
        成员方法:
            
    英雄机 
        成员变量:
            int life,
            int score;

        成员方法:

    子弹:
        成员变量:
            int blood,
            int speed;

        成员方法:
            move()

_________________________________
1.继承(extends): 子类继承父类
  1).语法结构:
    子类(衍生类/扩展类) extends 父类(基类)
  2).继承的特征:
    a.子类继承父类,就继承父类中所有的成员变量和成员方法
    b.所有类都有默认继承的父类:Object
    c.一个类只能有一个父类,但是一个父类可以有多个子类
    d.子类中还可以定义自己独特的成员变量和成员方法
        子类的功能一定比父类的强大
  
  3).特殊情况:
      a.子类中的成员变量名和父类中的同名时
          ps: name
              Dog d = new Dog()
              d.name -> 显示子类中自己的成员变量,获取不到父类的成员变量
          建议: 有父子类关系的类中,尽量不要出现相同的成员变量名
          
      b.子类中可以引用父类对象
      c.创建子类对象之前,会先创建父类对象
          子类加载前,会先加载父类

      e.通过子类对象调用方法是
          先看子类中有没有重写父类中的方法
          如果重写了,则显示子类中的方法
          如果没有,则显示从父类中继承过来的方法


2.super关键词
    super:父类对象
    1).在子类构造方法中一定都会先默认调用父类的无参构造方法
        默认添加super()
    2).如果父类中没有无参构造方法,就要在子类中手动调用父类的有参构造方法
    3).super()只能出现在构造方法的第一行

    4).建议:所有存在父子类关系的类中,建议先添加无参构造方法,方便子类使用


3.方法的重写
    前提: 必须存在父子类关系
    子类中重写父类定义的方法,方法的方法名/方法的返回值/方法的修饰符/方法的参数,必须完全一致才能实现方法的重写.


4.抽象类: abstract
  1)抽象类:
      a.使用abstract修饰的类,叫做抽象类
      b.一个类中可以存在多个抽象方法
      c.抽象类是不可以new对象的,也就是不能实例化
          只能通过子类实现
      d.抽象类也有构造方法,为了方便子类使用

    2)抽象方法
        a.使用abstract修饰的方法,抽象方法
        b.抽象方法是没有方法体的
        c.如果子类不重写父类中的抽象方法,就必须将自己变成抽象类

    3)成员变量是不可能是抽象的,因为都是具体的类型,具体的值.

    4)判断:
        有抽象方法的类叫做抽象类 √
        抽象类就是有抽象方法的类 ×
        抽象类中可以存在抽象方法 √

面试题:
    1.this关键词 和 super关键词的区别:
    2.方法重载和方法重写的区别:
        方法重载前提: 同一个类中
        方法重写前提: 父子类中
    3.面向对象的三大特征: 
        (继承  封装  多态) 抽象


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值