java中的多态以及接口

多态概述:
同一个对象,在不同时刻变现出来的不同形态
举例:猫
我们可以说猫是猫:猫 cat = new 猫();
我们也可以说猫是动物:动物 animal = new 猫();
这里猫在不同的时刻表现出来了不同的形态,这就是多态

多态的前提和体现:
有继承/实现关系
有方法重写
有父类引用指向子类对象

多态中成员访问特点:
成员变量:编译看左边,执行看右边
成员方法:编译看左边,执行看右边
为什么成员变量和成员方法的访问不一样呢?
因为成员方法有重写,而成员变量没有

多态的好处和弊端:
多态的好处:提高了程序的拓展性
具体体现:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作
多态的弊端:不能使用子类的特有功能

多态的转型:
向上转型:
从子到父
父类引用指向子类对象
向下转型:
从父到子
父类引用转为子类对象

抽象方法必须在抽象类里面
abstract: 修饰类和方法
抽象类:不能直接使用
抽象方法:不能有方法体/必须在抽象类里面或者接口里

抽象类的特点:

作用:
定义规则和规范,强制所有的子类去按照规则做事情

抽象类的成员特点:
成员变量
可以是变量
也可以是常量
构造方法:
有构造方法,但是不能实例化
那么,构造方法的作用是什么呢?用于子类访问父类数据的初始化
成员方法:
可以有抽象方法:限定子类必须完成某些操作
也可以有非抽象方法:提高代码复用性
接口概述:
接口就是一种公共的规范标准,只要符合标准,大家都可以通用
Java中的接口更多的体现在对行为的抽象
接口特点:
接口用关键字interface修饰
public interface 接口名{}
类实现接口用imples表示
public class 类名 implements 接口名{}
接口不能实例化
接口如何实现实例化?参考多态的方式,通过实现类对象实例化,这叫做接口多态
多态的形式:具体类多态,抽象类多态,接口多态
多态的前提:有继承或者实现关系;有方法重写;有父(类/接口)引用指向(子/实现)类对象
接口的实现类
要么是重写接口中的所有抽象方法
要么是抽象类
接口的成员特点:
成员变量:
只能是常量
默认修饰符:public static final
构造方法:
接口没有构造方法,因为接口主要是对行为进行抽象的,是没有具体存在
一个类中如果没有父类,默认继承自Object类
成员方法:
只能是抽象方法
默认修饰符:public abstract

类和接口的关系:
类和类的关系:
继承关系,只能单继承,但是可以多层继承
类和接口的关系:
实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口
接口和接口的关系:
继承关系,可以单继承,也可以多继承

抽象类和接口的区别:
成员区别:
抽象类 变量,常量;有构造方法;有抽象方法,也有非抽象方法
接口 常量;抽象方法
关系区别:
类与类 继承,单继承
类与接口 实现,可以单实现,可以多实现
接口与接口 继承,单继承,多继承
设计理念区别:
抽象类 对类抽象,包括属性、行为
接口 对行为抽象,主要是行为

抽象类是事物的抽象,接口是对行为的抽象

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值