Java中的接口回调和上转型

1、在Java中可以通过子类的对象的上转型体现继承的多态性,即把子类创建的对象的引用放在一个父类的对象中,便可得到该对象的上转型,那么这个父类的对象便可访问在子类中重写的父类的方法,这就实现了上转型对象在调用方法时的多种形态。不同的上转型对象调用同一方法可能会产生不同的行为。

 

上转型的例子:

package test1;

class Animal{
	void cry(){}
}

class Dog extends Animal{
	void cry(){
		System.out.println("Wang!Wang~~~~");
	}
}

class Cat extends Animal{
	void cry(){
		System.out.println("Miao!Miao~~~");
	}
}

public class Test1 {
	public static void main(String args[]){
		Animal animal;
		animal = new Dog();
		animal.cry();
		animal = new Cat();
		animal.cry();
	}
}

 

 

2、接口回调是多态的另一种体现。指的是可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口中的方法,当接口变量调用被类实现的接口中的方法时,就通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。

 

接口回调的例子:

package test1;

interface Animal{
	void cry();
}

class Dog implements Animal{
	public void cry(){
		System.out.println("Wang!Wang~~~~");
	}
}

class Cat implements Animal{
	public void cry(){
		System.out.println("Miao!Miao~~~");
	}
}

public class Test1 {
	public static void main(String args[]){
		Animal animal;
		animal = new Dog();
		animal.cry();
		animal = new Cat();
		animal.cry();
	}
}

 

个人觉得接口回调和上转型很像,下面是接口和抽象类的比较。

1、抽象类和接口都可以有抽象的方法。

2、接口中只可以有常量,不能有变量;而抽象类中既可以有常量,也可以有变量。且在接口中声明的方法是不可以带实现方法的。

3、抽象类中可以有非抽象的方法,接口不可以。就是说接口中的所有方法都必须在继承的子类中实现。

 

 

注:《Java大学实用教程》学习笔记

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值