黑马程序员_Java基础之多态、接口

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------

数据抽象、继承、多态是面向对象方法的3个基本特征。

一、多态

(1)定义

也称作动态绑定、运行时绑定

理解:多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来。“封装”通过合并特征和行为来创建新的数据类型。

多态的作用是消除类型之间的耦合关系。

(2)向上转型

把对某个对象的引用视为对其基本类型的引用的做法称作向上转型。例如:

//基类

publicclass Base {}

 

//子类继承基类

publicclass Sub extends Base{}

在调用子类Sub时,应该是Subsub=new Sub();其中sub就是对Sub类的一个对象引用,但也可以这样写Base sub=new Sub();这就称为将sub引用视为基本类型的引用。所以引用sub由Sub类型向上转型为Base类型。

(3)方法调用绑定

将一个方法调用同一个方法主体关联起来被称作绑定。若在程序执行前进行绑定(由编译器和连接程序实现),叫做前期绑定。在Java语言中除了使用关键字static和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定。被final修饰的方法不能被重写。

二、接口

(1)抽象方法

仅有方法声明而没有方法体。包含抽象方法的类叫做抽象类。如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的。

publicabstractclass Base {

    …….省略代码

    //只有方法声明,无方法主体,即为抽象方法

    publicabstractvoid printBase();

}

另有一个类继承了一个抽象类,但是没有实现抽象方法,那么此类还是一个抽象类,编译器会强制我们使用abstract关键字来限定这个类。

 

(2)接口

它是一个完全抽象的类,他根本就没有提供任何具体实现。它允许创建者确定方法名、参数列表和返回类型,但是没有任何方法体。接口只提供了形式,而未提供具体实现。接口被用来建立类与类之间的协议。使用interface关键字来声明。例如:

publicinterface TestAInter {

    //只有方法头,而未有方法主体

    publicvoid  test();

}

理解说明:

(1)接口中的方法无论是否加public修饰符,它都是公共的。

(2)接口是一个特殊的抽象类。

(3)接口中只提供做什么的说明,但并未提供怎么做,实现了解耦的目的。

(4)接口允许多重继承。

(5)一个类可以继承任意多个接口,并可以向上转型为每个接口,因为每个接口都是一个独立类型。

实现接口的方式是将接口名称置于implements关键字之后,多个接口用逗号隔开。例如:

publicinterface TestA {

    publicvoid  testA();

}

 

publicinterface TestB {

    publicvoid  testB();

}

 

publicclass Test implements TestA,TestB {

    

    //接口TestA方法具体实现

    publicvoid  testA(){

       

    }

    

    //接口TestB方法具体实现

    publicvoid  testB(){

       

    }

}

 

(3)其他说明

(1)通过继承来扩展接口,但要注意的是尽量避免两个接口有相同的方法声明,防止名字冲突。

(2)放在接口中的任何域都自动是static和final的,所以接口就成为了一种很便捷的用来创建常量组的工具。

(3)接口可以嵌套在其他的类或接口中。

 

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------

详细请查看:<a href="http://www.itheima.com" target="blank">www.itheima.com</a>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值