黑马day02

1.多态

多态是在继承或者实现情况下的一种现象,变现为:对象多态、行为多态。

对象多态:有继承/实现关系;存在父类引用指向子类对象。

行为多态:在对象多态的基础上并且存在方法重写。

(1)类型转换

        自动类型转换:父类.变量名=new 子类();

        强制类型转换:子类.变量名=(子类)父类变量;//此功能用于想要调用子类中父类没有定义的方法,不强转的话,不满足编译看左,执行看右。

(2)instenceof关键字

        instenceof的用法:父类变量  instenceof  子类类型 

        instenceof的作用:用于判断父类变量是否是基于某个子类创建的。

拓展

Teacher teacher =new Teacher();  //Teacher类继承于People类

People people=teacher;//可以这样功能同People people=new Teacher()一样;

2.final

(1)final关键字是最终的意思,可以修饰类、方法和变量。

  • 修饰类:该类被称为最终类,类不能在被继承
  • 修饰方法:该方法被称为最终方法,方法不能被重写。
  • 修饰变量:该变量只能被赋值一次,赋值完毕之后不能在修改。

(2)final修饰变量的注意事项

  • final修饰基本数据类型时,该变量存储的数据不能被改变。
  • final修饰引用数据类型时,该变量存储的地址不能被改变,但地址所指向对象的内容时可以被改变的。

3.抽象类

(1)什么是抽象类?

        abstract可以修饰类和方法,修饰类时该类被称为抽象类,修饰方法时该方法被称为抽象方法。

(2)抽象类的特点

        抽象方法所在的类一定是抽象类,抽象类中不一定有抽象方法。

        抽象类不能创建对象,仅作为一种特殊的父类,让子类继承并事项。

        一个类继承抽象类,必须重写抽象类中的全部抽象方法,否则这个类也必须定义成抽象类。

4.模板设计模式

(1)概述

        模板方法就是在抽象类中定义一个模板方法,并将其中不同的代码抽出生成抽象方法,在子类中完成抽象方法的重写。

(2)步骤

        1、定义一个抽象类(父类),提供模板方法

        2、模板方法中,需要让子类自己实现的地方,定义为抽象方法

        3、子类只需要继承该抽象类,重写抽象方法即可完成些完成的功能

建议使用final关健字修饰模板方法,也就是将work方法用final修饰(上图中没加),模板方法是给对象直接使用的,不能被子类重写。

5.接口

(1)什么是接口

        用关键字interface定义出的特殊结构称为接口。

(2)接口的注意事项

        接口中定义的成员变量默认是被public static final修饰的。

        接口中定义的成员方法默认是被public abstract修饰的。

        接口不能直接创建对象。

        接口是用来被类实现的,实现接口的类称为实现类。

        一个类可以实现多个接口,同时也必须重写多个接口中的全部抽象方法,否则该类是抽象类,不能是接口。

(3)接口中的三种形式

        

(4)接口的注意事项

当接口和父类有同名方法时,子类中不需要强制重写接口中的同名方法,前提是父类中的同名方法不是抽象方法。

拓展

一个接口被实现类实现后,可以通过   实现类类名.成员变量名   来访问。因为接口中的成员变量是静态的。类之间的继承亦是如此。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值