多态接口
Posted 나 는 당신
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多态接口相关的知识,希望对你有一定的参考价值。
一、多态
1、什么是多态?
解析:不同的对象对于同一个操作,做出的响应不同
具有表现多种形态的能力的特征
2、使用多态的优点
解析:为了实现统一调用
一个小例子:<父类类型作为参数>
父类(Pet) 子类(Gog,Penguin) 主人类(Master)测试类(Test)
Pet
public abstract class Pet {
public abstract void eat();
}
Dog
public class Dog extends Pet{
@Override
public void eat() {
System.out.println("够吃骨头");
}
Penguin
public class Penguin extends Pet {
@Override
public void eat() {
System.out.println("企鹅吃fish");
}
Master
public class Master {
//父类类型作为参数
public void feed(Pet pet)
{
pet.eat();
}
}
Test
public static void main(String[] args) {
Master master=new Master();
Pet pet=new Dog();
master.feed(pet);
}
二、子类到父类的转换(向上转型)
规则:
① 将一个父类的引用指向一个子类对象,成为向上转型,自动进行类型转换
② 此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法
③ 通过父类引用变量无法调用子类特有的方法
三、java中两种实现和使用多态的方式
① 使用父类作为方法形参
② 使用父类作为方法返回值
四、父类到子类的转换(向下转型)
将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型。此时必须进行强制类型转换
五、instanceof运算符
语法:
对象 instanceof 类或接口
该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为true或false
注:
① 使用instanceof运算符时,对象的类型必须和instanceof的第二个参数所指定的类或接口在继承树上有上下级关系,否则会出现编译错误
② instanceof通常和强制类型转换结合使用
六、接口
在java语言中,接口有两种意思:
①概念性的接口,即系统对外提供的所有服务
②指用interface关键字定义的接口,也称为接口类型
七、特征
① 接口中的成员变量默认都是public、static、final类型的,必须被显示初始化
②接口中的方法默认都是public、abstract类型的
③接口没有构造方法,不能被实例化
④一个接口不能实现另一个接口,但它可以继承多个其他接口
⑤接口必须通过类来实现它的抽象方法
⑥ 一个类只能继承一个直接父类,但能实现多个接口
八、语法
① 修饰符 interface 接口名 extends 父接口1,父接口2....{
//常量定义
//方法定义
}
② class 类名 extends 父类名 implements 接口1,接口2....{
//类成员
}
一个小例子:
使用java接口来模拟生活中的USB接口
1、先定义USB接口,通过service()方法提供服务
public interface Usbinterface{
void service();
}
2、定义U盘类,实现USB接口中的service()方法,进行数据传输
public class UDisk implementd UsbInterface{
public void service()
{
System.out.println("连接USB口,开始数据传输!");
}
}
3、定义USB风扇类,实现USB接口中的service()方法,获得电流使风扇转动
public class UsbFan implementd UsbInterface{
public void service()
{
System.out.println("连接USB口,获得电流,风扇开始转动!");
}
}
4、编写测试类
public class Test{
public static void main(String[]args){
//u盘
UsbInterface uDisk=new UDisk();
uDisk.service();
//USB风扇
UsbInterface usbFan=new UsbFan();
usbFan.service();
}
}
以上是关于多态接口的主要内容,如果未能解决你的问题,请参考以下文章