精华内容
下载资源
问答
  • ![图片说明](https://img-ask.csdn.net/upload/201703/14/1489477795_107145.png) CharSequence是一个接口
  • 接口可以创建对象

    万次阅读 2015-05-31 16:11:33
    一直以来,我一直认为接口是不可以创建对象的,随着学习的不断深入发现这是片面或错误...学习了匿名内部类后,可以发现,使用接口创建对象也是可以的。 例如: File driec = new File("G:/file/test"); File[] files =

    一直以来,我一直认为接口是不可以创建对象的,随着学习的不断深入发现这是片面或错误的。接口存在的意义就是支持java的多态机制。java规定接口interface不能直接使用new关键字来创建对象,但并没有限定它不能创建对象。学习了匿名内部类后,可以发现,接口使用匿名方式创建对象也是可以的。

    例如:

    File driec = new File("G:/file/test");
    File[] files = driec.listFiles(new FilenameFilter() {  //FilenameFilter是接口,创建其匿名对象
            @Override
    	public boolean accept(File dir, String name) {
    	return new File(dir,name).isFile() && name.endsWith(".java");
    	}
    });


    如有错误,欢迎指正。

    展开全文
  • 一 首先接口实例化对象这是毋庸置疑的 !!!! 原因:1.实际语义是实例化一个实现该接口的匿名内部类,接口本身是用来抽象的,实例化接口没有意义。 2.实例化实际意义是在jvm的堆中开辟出一块内存空间,比如...
    一 首先接口不能实例化对象这是毋庸置疑的 !!!!
    原因:1.实际语义是实例化一个实现该接口的匿名内部类,接口本身是用来抽象的,实例化接口没有意义。
                2.实例化实际意义是在jvm的堆中开辟出一块内存空间,比如Student s = new Student();此处声明Student对象s,并且实例化一个Student对象,实则是在堆中开辟出一块空间来存放Student对象,s则是指向这块空间,也就是内存中的一块地址。这块地址中所存放的值就是我们这个Student对象的一些属性。而接口是抽象,没有具体方法的实现,但是有静态变量。
               3.本人认为 类继承实现了接口就类似于子类继承父类(因为你继承接口的时候把方法重写了,就类似于直接季继承了父类,在这理解为向上转型。) 而且new dd()可以理解为一个匿名类,这样的话返回的值向上兼容,这样的话,接口引用c就指向了具体的实现接口的对象,多态的体现。


    这样的好处在于通过接口c来调用的方法可以屏蔽掉具体的方法实现。换而言之,我只需要知道c要做什么,而不需要知道c怎么做。。

    也就是在JAVA编程中经常用到的接口回调,即面向接口的编程

    更为重要的一点是Collection c只是引用,是一个指向具体实现类的引用。
    展开全文
  • 抽象类为什么能创建对象

    千次阅读 2020-07-18 21:37:02
    创建对象 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类往往...

    目录

    抽象类

    比较区别

    创建对象


    抽象类

    面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

    抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。 

    比如,在一个图形编辑软件的分析设计过程中,就会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域并不是直接存在的,它就是一个抽象概念。而正是因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能够实例化的。


    比较区别

    与具体类比较

    1. 抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。

    2. 允许(但不要求)抽象类包含抽象成员。

    3. 抽象类不能被密封。

    与接口比较 

    抽象类表示该类中可能已经有一些方法的具体定义,但是接口就仅仅只能定义各个方法的界面(方法名,参数列表,返回类型),并不关心具体细节。

    接口是引用类型的,和抽象类的相似之处有三点:

    1. 不能实例化;

    2. 包含未实现的方法声明;

    3. 派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员)。 [2] 

    抽象类与接口紧密相关。然而接口又比抽象类更抽象,这主要体现在它们的差别上:

    1. 类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。

    2. 抽象类当中可以存在非抽象的方法,可接口不能,且它里面的方法只是一个声明必须用public来修饰没有具体实现的方法。

    3. 抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static final)。

    4. 抽象类是对象的抽象,然而接口是一种行为规范。

     


    创建对象

    抽象类尚未实现方法,所以不能创建对象。

    创建对象去调用方法是指做明确的事情,而这个抽象方法并不明确,所以只有继承抽象类去实现抽象方法才可以。

    展开全文
  • /* 抽象类和接口作为形式参数: ... //抽象类和接口虽然都不直接创建对象,但是可以通过多态进行对象的创建... */ //************抽象类作为形式参数*********** abstract class Person { publi
    /*
    	抽象类和接口作为形式参数:
    			抽象类:需要的是该抽象的类子类对象 
    			
    			接口:需要的是该接口的实现类(或者说子类也可行)对象
    	//下面这句话一定要理解并记住:
    	//抽象类和接口虽然都不能直接创建对象,但是可以通过多态进行对象的创建...
    */
    //************抽象类作为形式参数***********
    abstract class Person {
    	public abstract void study();
    }
    
    class PersonDemo {
    	public void method(Person p) {//p; p = new Student();  
                                          //Person p = new Student(); //多态
    		p.study();
    	}
    }
    
    //定义一个具体的学生类
    class Student extends Person {
    	public void study() {
    		System.out.println("Good Good Study,Day Day Up");
    	}
    }
    
    class PersonTest {
    	public static void main(String[] args) {
    		//目前是没有办法的使用的
    		//因为抽象类没有对应的具体类
    		//那么,我们就应该先定义一个具体类
    		//需求:我要使用PersonDemo类中的method()方法
    		PersonDemo pd = new PersonDemo();
    		Person p = new Student();
    		pd.method(p);
    	}
    }
    //************接口作为形式参数***********
    //定义一个爱好的接口
    interface Love {
    	public abstract void love();
    }
    
    class LoveDemo {
    	public void method(Love l) { //l; l = new Teacher();  
                                         //Love l = new Teacher(); 多态
    		l.love();
    	}
    }
    
    //定义具体类实现接口
    class Teacher implements Love {
    	public void love() {
    		System.out.println("老师爱学生,爱Java,爱林青霞");
    	}
    }
    
    class TeacherTest {
    	public static void main(String[] args) {
    		//需求:我要测试LoveDemo类中的love()方法
    		LoveDemo ld = new LoveDemo();
    		Love l = new Teacher();
    		ld.method(l);
    	}
    }

    展开全文
  • 通过接口抽象类“创建对象

    千次阅读 2018-08-21 21:36:24
    前言 首先声明,用接口或者抽象类实例化一个对象是不可能的,错误的。 接口、抽象类实现注意点 ...现在,我们动手解释下为什么接口或者抽象类实例化对象是错误的,以及该如何重新理解这句话。 ...
  • 接口的实现类创建对象时,都要用多态吗?还是有什么其他的情况?因情而异?
  • Java抽象类不能创建对象

    万次阅读 2017-03-06 14:35:21
    抽象类和接口能创建对象,只是后边的new不是new他们自己,但可以new他们的实现类(必须是类,不是抽象类和接口), 人们使用抽象类和接口只是为了说明要干什么事,而让他们的实现类去根据自己的需要去实现这些...
  • 初学反射,在个人理解中,他的主要目的是为了...反射+配置文件+工厂 例 先来一个接口类 public interface IShowFun { void Say(); void Do(); } 一个集成该接口的方法 public class ShowGirlFun:IShowFun {
  • 不确定,有待后面验证 webService接口传递json对象数据为什么接口实现类获取不到? 我写了一个测试接口,我发布好了之后测试它,我接口里要传递的参数是JSONObject, 我测试客户端传了一个JSONObject类型的...
  • 在java.util里面List是一个接口,所以不直接初始化,所以会编译错误 你可以List l =new ArrayList();这样是可以的,因为 ArrayList是实现List接口的 或者List l = new LinkedList(); LinkedList同样实现了List...
  • 创建实现Java的接口类的对象

    千次阅读 2019-02-01 12:39:32
    public interface Jiekou { ...//实现接口的class public class Jiekouimple implements jiekou{  public void s(); } public class Test(  public static void main(String[] args) {  ...
  • 一 ,定义接口和抽象类 interface IPerson{ //获取名字 fun getName():String //获取身份证ID fun getID():String } abstract class BaseAnimal{ abstract fun getVoice():...二,创建对应的匿名对象 ob
  • 如何在一个普通的java类里面创建由Spring管理的service接口对象? 如何在一个普通的java类里面创建由Spring管理的service接口对象? 如何在一个普通的java类里面创建由Spring管理的service接口对象
  • java利用反射为接口实例化对象并调用 package xxxxx; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import xxxxx.MyLibrary.MyCallback; import java.lang.reflect.InvocationHandler; ...
  • 今天登陆一个部署在本地的B/S架构系统,突然出现弹出Automation 服务器不能创建对象,大概意思就是说emmmmm.........(不懂装懂脸) 本人还在用IE8,
  • Java中创建对象的5种方式

    万次阅读 2016-07-20 10:25:08
    作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象。然而这里有很多创建对象的方法,我们会在这篇文章中学到。 Java中有5种创建对象的方式,下面给出它们的例子还有它们...
  • 接口--实例化接口对象的三种方式

    千次阅读 2019-12-26 17:45:12
    当我们创建了一个接口的时候,我们是无法像创建对象一样,直接实例化接口对象的。所以在这里,我来分享三种方式来实例化接口对象。 //这里会提示'Student' is abstract; cannot be instantiated,也就是说接口是...
  • 接口的灵活性就在于“规定一个类必须做什么,而不管你如何做”。我们可以定义一个接口类型的引用变量来引用实现接口的类的实例,当这个引用调用方法时,它会根据实际引用的类的实例来判断具体调用哪个方法,这和上述...
  • package javademo9; import java.util.Scanner; interface Fruit{ } class Apple implements Fruit { public Apple() { ...创建了一个苹果对象"); } } class Pear implements Fruit { public Pea...
  • java创建对象实例的四种方式

    千次阅读 2018-05-21 21:26:05
    java创建对象的方法常用的有四种:使用new关键字、利用java的放射机制、实现Cloneable接口使用克隆方法以及利用java序列化和反序列化实现创建对象。不说那么多,直接上代码。本次主要讲前三中创建方式,只是大致讲解...
  • java创建对象的几种方式

    千次阅读 2018-09-17 16:57:17
    1、通过java关键字NEW创建对象 最简单最常用的创建对象方式,包括无参的和有参的构造函数。 例如: 通过NEW关键字创建方式: Test test = new Test();//通过无参构造函数创建 Test test1 = new Test(this);//...
  • 那么如何引用呢,web启动类中注入 service 对象 设置static new创建对象 类中引用,测试不可实现,以为静态变量 不用@Resource 或@Autowired 注入,所以可通过以下方式实现,将注入的方法正常注入fService对象...
  • Java中创建对象的几种方式

    千次阅读 2017-05-19 10:10:00
    创建对象方式 Java开发中,我们每天会创建很多对象,也会使用依赖注入的方式管理系统,比如:Spring去创建对象。然后究竟有多少种创建对象的方法呢? 这里列举一下:使用New关键字、使用Class类的newInstance方法...
  • COM组件的接口对象

    万次阅读 2017-02-07 17:21:04
    COM对象在组件中是被封装起来的,客户代码只能通过接口来访问COM对象并享受其服务,由于客户与COM直接打交道的是COM接口,所以COM接口是COM最关键的要素。COM规范的核心内容就是对接口的定义,甚至可以说“在COM中...
  • Java创建对象的四种方式

    千次阅读 2019-02-21 18:30:07
    Java创建对象的方式从是否调用了构造函数可以分为两种 调用了构造函数 1)使用new关键字 2)使用Class类的newInstance方法: a.使用Class类的forName方法 b.使用ClassLoader类的loadClass方法 3)使用...
  • 06-Spring复杂对象创建

    万次阅读 2020-11-01 11:15:09
    通过new的方式创建出来的对象就是复杂对象。 下面试对简单对象和复杂对象的说明,这样的话对简单对象和复杂对象就有了具体的认识。这里非常重要。学习一定要有调性,有节奏,这样掌握起来就得心应手。 对于复杂...
  • 创建对象与使用对象——谈谈工厂的作用

    万次阅读 多人点赞 2012-04-30 01:54:54
    在设计模式的教学和推广过程中,很多企业学员和在校学生经常问我,工厂模式(包括简单工厂模式、工厂方法模式和抽象工厂模式)到底有什么用,很多时候通过反射机制就可以很灵活地创建对象毛还要工厂?...
  • Java有哪些创建对象的方式? 1、用new关键字创建对象,需要使用构造器。 2、使用反射机制创建对象,用Class类或Constructor类的newInstance()方法。 3、通过object类的clone方法 4、使用反序列化

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,592,159
精华内容 636,863
关键字:

为什么接口能创建对象