java – 为什么在Runnable接口的子类中丢失抽象属性?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 为什么在Runnable接口的子类中丢失抽象属性?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1291字,纯文字阅读大概需要2分钟。
内容图文
![java – 为什么在Runnable接口的子类中丢失抽象属性?](/upload/InfoBanner/zyjiaocheng/727/efa69006c666468b910da57260700a87.jpg)
我实际上是在学习Threads.但是遇到一个非常基本的问题.我知道如果我继承了我的类中的接口,我必须在我继承的类中给出所有方法的定义(在该接口中提到),否则它必须被声明为abstract.现在我尝试了非常简单的代码……
import java.util.*;
import java.lang.*;
import java.io.*;
abstract class Code implements Runnable
{
public static void main (String[] args) throws java.lang.Exception
{
}
}
在编译中没有问题,然后我从类代码中删除了abstract关键字,它向我显示编译错误,说类代码不是抽象的…
必须有错误.但后来我做了什么,检查一些变化,从类扩展Thread类并重新编译代码.我没有编译错误!虽然我没有给出run()方法的定义,但我都没有提到我的类是抽象的.
那里…
class Code extends Thread implements Runnable
{
public static void main (String[] args) throws java.lang.Exception
{
}
}
意味着这个类失去了抽象属性.怎么可能?有人请解释.
解决方法:
嗯,你知道Runnable接口只有一个抽象方法.即,
abstract public void run();
如果要实现Runnable,则必须在自己的具体类中提供run()方法的定义,或者可以使类具有抽象性.现在,您可以显式地提供类中run()方法的定义,或者通过继承具有run()方法的有效定义的任何其他类来隐式提供. Thread类也有run()方法的有效定义.因此,如果您在类中继承Thread类和Runnable接口,则该类不再携带任何抽象属性.这就是您没有得到编译错误的原因.请确保run()方法的访问说明符.如果你继承任何其他类而不是Thread,你必须提供具体的run()方法,因为,
public void run()
{
//body
}
内容总结
以上是互联网集市为您收集整理的java – 为什么在Runnable接口的子类中丢失抽象属性?全部内容,希望文章能够帮你解决java – 为什么在Runnable接口的子类中丢失抽象属性?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。