博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多态and接口
阅读量:6657 次
发布时间:2019-06-25

本文共 2256 字,大约阅读时间需要 7 分钟。

一、多态

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关键字定义的接口,也称为接口类型

定义:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合

语法:

【修饰符】 interface 接口名 extends 父接口1,夫接口2.......

       class 类名 extends 父类名 implements 接口1,接口2.......

七、特征

① 接口中的成员变量默认都是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();}}

 

转载于:https://www.cnblogs.com/Zhangmin123/p/5533059.html

你可能感兴趣的文章
MySQL存储过程
查看>>
做有中国特色的程序员
查看>>
JVM【第九回】:【OutOfMemoryError异常之本机直接内存溢出】
查看>>
Angular
查看>>
ANTLR Reference书摘
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
《Effective C++第三版》读书笔记——构造/析构/赋值运算
查看>>
Redhat 5.3 Linux内核的升级!
查看>>
Ubuntu Mate:扩展存储到整张SD卡
查看>>
学习使用clojure(1)
查看>>
EXCEL 2010规划求解基础篇
查看>>
es学习5-slowlog
查看>>
nf_conntrack: table full, dropping packet
查看>>
Linux的五个查找命令:find,locate,whereis,which,type
查看>>
KK课表抓取教务系统
查看>>
mac上如何某端口号被哪些程序占用
查看>>
mac 随记
查看>>
易宝典文章——玩转Office 365中的Exchange Online服务 之二十四 配置垃圾邮件筛选器反垃圾邮件...
查看>>
读写者锁与生产者/消费者模式
查看>>