多态,instanceof运算符,抽象abstract,接口

多态:

同一个类,在不同时刻表现出不同的形态

子类->父类:父类的引用指向子类的对象

例如: Animal animal = new Cat();

父类->子类:

例如: Cat cat=(Cat)animal

instanceof运算符:

当前父类指向哪一个子类
    使用格式:
        对象  instanceof  类或接口
        父类的对象  instanceof  子类
    例如:
        animal instanceof Cat

父类的引用指向子类的对象访问成员

只能访问父类成员,父类方法可以被子类修改(覆盖)

抽象abstract:

父类不能实例话,父类中需要重写的方法不应该有代码体

格式抽象类:
    权限访问修饰符 abstract class 类名
格式抽象方法:
    权限访问修饰符 abstract 反返回值类型 方法名();

特点:
    抽象方法必须在抽象类中,抽象类中可以有实体方法
    抽象类不能直接实例化(抽象类没有具体实例,实例化没有意义)
    抽象如何实例化?通过多态的方式,父类的引用指向子类的对象
    抽象类的子类要么必须重写抽象类中所有抽象方法,要么是抽象类

抽象类中的成员特点:
    成员变量
        可以有变量,可以有常量
    构造方法(不能用来创建对象)
        有构造方法但是不能实例化
        构造方法用于子类访问父类数据的初始化
    成员方法
        可以有抽象方法:子类必须重写父类抽象方法
        可以有非抽象(实体)方法:提高代码的复用性

接口:

概述

接口就是一种公共的规范标准,只要符合标准,大家都可以使用

Java中的接口更多的体现在了对行为的抽象

定义接口
    格式:访问修饰符 interface 接口名{}
    范例:public interface AnimalImpl{}

特点:
    接口不能实体类被继承,只能被实现
    接口之间可以继承,可以单继承和多继承
    类实现接口通过implements实现
范例:public class 类名 implements 接口{}
接口不能直接实例化
    通过多态的形式:接口 接口对象=new 实现类()
接口的实现类
    要么重写接口中的所有抽象方法
    要么是抽象类

注意:

接口类中通常只写抽象方法

接口类中的抽象方法可以不用abstract修饰

接口中的方法(非静态方法)默认都是抽象方法

接口中的抽象方法写在抽象类中不是也可以吗?为什么要分开?

为了方便管理

属性在抽象父类中

方法(方法重写)在就接口中

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值