首页编程java编程java中什么是多台,java中多态是什么意思

java中什么是多台,java中多态是什么意思

编程之家2023-10-1381次浏览

大家好,感谢邀请,今天来为大家分享一下java中什么是多台的问题,以及和java中多态是什么意思的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

java中什么是多台,java中多态是什么意思

java实现接口 可以实现多台吗

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)

接口:public class x{}

1例如:public class void a implement x{

java中什么是多台,java中多态是什么意思

实现接口方法}

2例如:

public class void b implement x{

java中什么是多台,java中多态是什么意思

实现接口方法}同样可以实现接口X

Java多线程是什么意思

Java多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。

1、继承Thread类实现多线程

继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extend Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。例如:

在合适的地方启动线程如下:

2、实现Runnable接口方式实现多线程

如果自己的类已经extends另一个类,就无法直接extends Thread,此时,必须实现一个Runnable接口,如下:

为了启动MyThread,需要首先实例化一个Thread,并传入自己的MyThread实例:

事实上,当传入一个Runnable target参数给Thread后,Thread的run()方法就会调用target.run(),参考JDK源代码:

3、使用ExecutorService、Callable、Future实现有返回结果的多线程

ExecutorService、Callable、Future这个对象实际上都是属于Executor框架中的功能类。想要详细了解Executor框架的可以访问http://www.javaeye.com/topic/366591,这里面对该框架做了很详细的解释。返回结果的线程是在JDK1.5中引入的新特征,确实很实用,有了这种特征我就不需要再为了得到返回值而大费周折了,而且即便实现了也可能漏洞百出。

可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。执行Callable任务后,可以获取一个Future的对象,在该对象上调用get就可以获取到Callable任务返回的Object了,再结合线程池接口ExecutorService就可以实现传说中有返回结果的多线程了。下面提供了一个完整的有返回结果的多线程测试例子,在JDK1.5下验证过没问题可以直接使用。代码如下:

代码说明:

上述代码中Executors类,提供了一系列工厂方法用于创先线程池,返回的线程池都实现了ExecutorService接口。

public static ExecutorService newFixedThreadPool(int nThreads)

创建固定数目线程的线程池。

public static ExecutorService newCachedThreadPool()

创建一个可缓存的线程池,调用execute将重用以前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60秒钟未被使用的线程。

public static ExecutorService newSingleThreadExecutor()

创建一个单线程化的Executor。

public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize)

创建一个支持定时及周期性的任务执行的线程池,多数情况下可用来替代Timer类。

总结:ExecutoreService提供了submit()方法,传递一个Callable,或Runnable,返回Future。如果Executor后台线程池还没有完成Callable的计算,这调用返回Future对象的get()方法,会阻塞直到计算完成。

java中多态是什么意思

多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,

父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4编程技术内幕”)。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在Object Pascal和C++中都是通过虚函数实现的。

多态指同一个实体同时具有多种形式。它是面向对象程序设计(OOP)的一个重要特征。如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的。C++中的多态性具体体现在运行和编译两个方面。

运行时多态是动态多态,其具体引用的对象在运行时才能确定。编译时多态是静态多态,在编译时就可以确定对象使用的形式。

多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。

C++中,实现多态有以下方法:虚函数,抽象类,覆盖,模板(重载和多态无关)。

OC中的多态:不同对象对同一消息的不同响应.子类可以重写父类的方法

多态就是允许方法重名参数或返回值可以是父类型传入或返回。

扩展资料:

把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。

赋值之后,父类型的引用就可以根据当前赋值给它的子对象的特性以不同的方式运作。也就是说,父亲的行为像儿子,而不是儿子的行为像父亲。

比如从某个基类派生出多个子类,其基类有一个虚方法Tdoit,然后其子类也有这个方法,但行为不同,然后这些子类对象中的任何一个可以赋给其基类对象的引用,或者说将子对象地址赋给基类指针,这样其基类的对象就可以执行不同的操作了。

实际上你是在通过其基类的引用来访问其子类对象的,你要做的就是一个赋值操作。

使用继承性的结果就是当创建了一个类的家族,在认识这个类的家族时,就是把子类的对象当作基类的对象,这种认识又叫作upcasting(向上转型)。这样认识的重要性在于:我们可以只针对基类写出一段程序,但它可以适应于这个类的家族,

因为编译器会自动找出合适的对象来执行操作。这种现象又称为多态性。而实现多态性的手段又叫称动态绑定(dynamic binding)。

参考资料:百度百科-多态

求详解java中的接口与多态

多态是面向对象的核心之一,面向接口编程也是以面向对象编程为核心。

接口就是一种规范,我们平时编程要融入生活,比如说电脑的主板,上面有很多接口,插CPU得接口只要插上CPU就可以工作,不管它是哪个厂家生产的CPU,不管它内部如何工作,只要是CPU就可以用。好比你写个接口,里面有个fly方法,实现此接口的类都要实现这个方法,至于你如何飞是你的问题,不管你用翅膀飞,还是骑扫把飞,只要实现’fly飞‘就可以。

上面是让你将编程融入生活,说说编程的东西。

多态就是父类或者接口的引用指向子类的对象的情况。比如child类 extends Fahter类

那么可以Father f=new Child();如果一段代码可以用父类运行,当换成子类时,功能不变,那么就是多态。多态主要一定要记得两段话,编译时看引用,运行时看对象。这句话的意思是在IDE编译阶段,你用f点出来的方法(f.这里会提示Father类有得实例方法)都是Fahter类自己有得,而Child类里自己有得方法不会被自动提示出来。但是如果子类重写父类的方法了(重写:就是子类定义了一个与父类一模一样的方法,只是方法体不同),运行时还要看后面new出来的是谁,new Child();那么执行要执行Child类重写的方法体,这样做的好处是我可以在一个方法里写f.fly();(比如Father和Child都有fly方法)

public void test(Father f){

f.fly();

}在这样的代码下我里面代码不用动,但是可以让f.fly()效果不同,因为我传进去的子类对象可以不同,比如test(new Child1()); test(new Child2()); test(new Child3());然而这三个子类里面的fly都有自己的具体实现,这就是多态的表现,同一个引用调用同一个方法而表现出多种状态。接口换成父类是一样的。再有不懂得地方追问。呵呵

java中什么是多台的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中多态是什么意思、java中什么是多台的信息别忘了在本站进行查找哦。

java能做什么工作(学Java以后可以做什么)太极功夫扇第二套(太极功夫扇第二套第六段分解教学)