Java中的多态抽象和接口

Java多态

多态就是同一个对象下在不同时刻表现出来的不同的形态,多态的前提要有继承或实现的关系,要有方法的重写,要有父类引用指向子类对象,它的好处就是提高了代码的扩展性,如定义方法时候,使用父类型作为参数,在使用的时候,使用具体的子类型参与操作。弊端就是不能使用子类特有的成员。
多态中的成员访问特点:
成员变量:编译看父类,运行看父类
成员方法:编译看父类,运行看子类
多态中的转型:分为向上转型和向下转型。向上转型就是父类引用指向子类对象。向下转型的格式:

子类名  对象名 = (子类型)父类引用;

抽象类

抽象类就是我们在做子类共同性抽取的时候,有些方法我们在父类中无法具体的实现,这个时候我们就要用抽象类。
抽象类和抽象方法的格式是使用关键字abstract来实现的,具体格式:

//抽象类的定义
public abstract class 类名 {}

//抽象方法的定义,抽象方法中不能写方法体
public abstract void 方法名();

注意: 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类并且抽象类不能实例化,抽象类如何实例,参照多态的方式,通过子类对象实例化,这叫抽象类多态。
抽象类的子类,要么重写抽象类中的所有抽象方法,要么是抽象类
抽象类成员的特点:成员变量可以是变量也可以是常量。有构造方法,空参和有参。有成员方法,抽象方法和普通方法。

接口

什么是接口,接口就是一种公共的规范标准,Java中的接口更多的是体现在对行为的抽象。
定义接口的格式:

//interface是定义接口的关键字
public interface 接口名 {} 

实现接口的格式:

//implements是实现接口的关键字
public class 类名 implements 接口名 {}

接口如何实例化呢?参照多态的方式,通过实现类对象实例化,这叫接口多态,多态的形式:具体类多态,抽象类多态,接口多态。
接口的子类要么重写接口中的所有抽象方法,要么子类也是抽象类。
接口成员特点:
成员变量
只能是常量,默认修饰符public static final,接口没有构造方法,因为接口主要是扩展功能的,没有具体的存在。成员方法,只能是抽象方法,默认修饰符public abstract。
类和接口的关系:
类与类的关系
继承关系,只能单继承,但是可以多层继承。
类与接口的关系
实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口。
接口与接口的关系
继承关系,可以单继承,也可以多继承。
抽象类和接口的区别:
成员区别
抽象类
变量,常量;有构造方法;有抽象方法,也有非抽象方法。
接口
常量;抽象方法。
关系区别
类与类
继承,单继承。
类与接口
实现,可以单实现,也可以多实现。
接口与接口
继承,单继承,多继承。
设计理念区别
抽象类
对类抽象,包括属性、行为。
接口
对行为抽象,主要是行为。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值