java如何new⼀个接⼝_为什么我们在Java中使⽤带有接⼝
的“new”关键字?
我是Android的新⼿.我已经学习了基本的⾯向对象编程课程,这些课程为课程提供了⼀种增强功能的⽅法.实际上以这种⽅式增强其功能的类,实现这些接⼝并覆盖在接⼝中编写的所有⽅法.
以下代码在Android中执⾏相同的⼯作:
public class MyActivity extends Activity implements OnClickListener {
java接口有没有构造方法// All other code you may expect
myButton.setOnClickListener(this);
@override
public onClick(View view) {
// Code when view is clicked
}
}
这段代码是可以理解的.但是下⾯的代码对我来说没有任何意义,我在不同的地⽅搜索过但没有得到满意的答案.
public class MyActivity extends Activity {
// All other code you may expect
myButton.setOnClickListener(new OnClickListner() {
@override
public onClick(View view) {
// Code when view is clicked
}
});
}
现在,OnClickListener()是Android⽂档中所说的接⼝,现在我们正在实例化⼀个接⼝.不是只实现接⼝吗?请帮我理解这⼀点.
解决⽅法:
新的OnClickListner(){没有实例化⼀个接⼝,它声明⼀个anonymous inner class.基本上是⼀个匿名类(实现接⼝OnClickListner的类),它本⾝没有名称.
匿名类表达式包含以下内容:
>新的操作符
>要实现的接⼝的名称或要扩展的类.在此⽰例中,匿名类正在实现OnClickListner接⼝.
>括号,包含构造函数的参数,就像普通的类实例创建表达式⼀样.注意:在实现接⼝的情况下,没有构造函数,因此您使⽤⼀对空括号,就像在此⽰例中⼀样.
>⼀个⾝体,是⼀个类声明体.更具体地说,在正⽂中,⽅法声明是允许的,但语句不是.
标签:java,oop,android
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论