精华内容
下载资源
问答
  • 构造方法不是用来实例化的,而是用来给属性初始化赋值的,抽象方法可以定义属性,那么就需要构造方法给属性赋值。这里就可以理解为什么接口没有构造方法了所以属性必须是常量了。 抽象方法需要被字类继承,字类的...
    1. java规定类都要有一个构造方法,没有默认提供一个空参构造
    2. 构造方法不是用来实例化的,而是用来给属性初始化赋值的,抽象方法可以定义属性,那么就需要构造方法给属性赋值。这里就可以理解为什么接口没有构造方法了所以属性必须是常量了。
    3. 抽象方法需要被字类继承,字类的构造方法中是用super()调用父类的构造方法实例化的,如果抽象类没有构造方法,那么久无法被字类继承了。
    展开全文
  • Java中抽象类真的不能实例化么?在学习的过程中,发现了一个问题,抽象类在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的。这样就把我搞糊涂了,既然有构造...

    在Java中抽象类真的不能实例化么?

    在学习的过程中,发现了一个问题,抽象类在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的。这样就把我搞糊涂了,既然有构造方法,又不可以通过new来创建,那么抽象类在没变成具体类的时候究竟可不可以实例化呢?

    通过上网查找资料、引用:blog.sina.com.cn/s/blog_7ffb8dd5010120oe.html

    抽象类其实是可以实例化的,但是他的实例化方式不是通过new方式来创建对象,而是通过父类的引用来指向子类的实例来间接地实现父类的实例化(因为子类要实例化前,一定会先实例化他的父类。这样创建了继承抽象类的子类的对象,也就把其父类(抽象类)给实例化了).但是:接口是不能被实例化的(接口压根就没有构造函数)。

    代码如下:

    abstract classB {privateString str;publicB(String a) {

    System.out.println("父类已经实例化");this.str=a;

    System.out.println(str);

    }public abstract voidplay();

    }public class A extendsB{publicA(String a) {super(a);

    System.out.println("子类已经实例化");

    }

    @Overridepublic voidplay() {

    System.out.println("我实现了父类的方法");

    }public static voidmain(String[] args) {

    B aa=new A("a");

    }

    }

    结果如下:

    父类已经实例化

    a

    子类已经实例化

    另外:Calendar中的getInstance()

    Calendar Cal

    =  Calendar.getInstance();

    Calendar是抽象类不能直接通过new对象,但是提供的静态getInstance()就是给Calendar创建对象。

    从Calendar.getInstance() 中所获得的实例其实就是一个 "GreogrianCalendar" 对象

    GreogrianCalendar就是Calendar的子类,他实现了Calendar里面的抽象方法。过父类的引用来指向子类的实例来间接地实现父类的实例化。同时,使用getInstance()有诸多好处:

    1。 new

    一定要生成一个新对象,分配内存;getInstance()则不一定要再次创建,它可以把一个已存在的引用给你使用,这在效能上优于new;

    2。new创建后只能当次使用,而getInstance()可以跨栈区域使用,或者远程跨区域使用。所以getInstance()通常是创建static静态实例方法的。

    展开全文
  • Java中抽象类真的不能实例化么?在学习的过程中,发现了一个问题,抽象类在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的。这样就把我搞糊涂了,既然有构造...

    在Java中抽象类真的不能实例化么?

    在学习的过程中,发现了一个问题,抽象类在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的。这样就把我搞糊涂了,既然有构造方法,又不可以通过new来创建,那么抽象类在没变成具体类的时候究竟可不可以实例化呢?

    通过上网查找资料、引用:blog.sina.com.cn/s/blog_7ffb8dd5010120oe.html

    抽象类其实是可以实例化的,但是他的实例化方式不是通过new方式来创建对象,而是通过父类的引用来指向子类的实例来间接地实现父类的实例化(因为子类要实例化前,一定会先实例化他的父类。这样创建了继承抽象类的子类的对象,也就把其父类(抽象类)给实例化了).但是:接口是不能被实例化的(接口压根就没有构造函数)。

    代码如下:

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    abstract classB {

    privateString str;

    publicB(String a) {

    System.out.println("父类已经实例化");

    this.str=a;

    System.out.println(str);

    }

    public abstract voidplay();

    }

    public class A extendsB{

    publicA(String a) {

    super(a);

    System.out.println("子类已经实例化");

    }

    @Override

    public voidplay() {

    System.out.println("我实现了父类的方法");

    }

    public static voidmain(String[] args) {

    B aa=new A("a");

    }

    }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    结果如下:

    父类已经实例化 a 子类已经实例化

    另外: Calendar中的getInstance()

    Calendar Cal =  Calendar.getInstance();   Calendar是抽象类不能直接通过new对象,但是提供的静态getInstance()就是给Calendar创建对象。 从Calendar.getInstance() 中所获得的实例其实就是一个 "GreogrianCalendar" 对象

    GreogrianCalendar就是Calendar的子类,他实现了Calendar里面的抽象方法。过父类的引用来指向子类的实例来间接地实现父类的实例化。同时,使用getInstance()有诸多好处: 1。 new 一定要生成一个新对象,分配内存;getInstance()则不一定要再次创建,它可以把一个已存在的引用给你使用,这在效能上优于new;

    2。new创建后只能当次使用,而getInstance()可以跨栈区域使用,或者远程跨区域使用。所以getInstance()通常是创建static静态实例方法的。

    文轉:http://www.cnblogs.com/crt-share/archive/2015/08/29/4769331.html

    展开全文
  • Java 抽象方法实例化

    千次阅读 2016-10-25 09:33:32
    这样写是错误的,但是抽象类可以声明对象,因为,抽象类的子类必须复写抽象类中的所有抽象方法,即抽象类的子类是可以直接实例化的,所以,通过父类的引用来指向子类的实例来间接地实现父类的实例化,这是父类引用...

    通过查找Java的API发现:抽象类有构造方法,而接口没有构造方法。 抽象类不可以直接创建对象,表示抽象类本身不能被实例化,即 抽象类 a = new 抽象类();这样写是错误的,但是抽象类可以声明对象,因为,抽象类的子类必须复写抽象类中的所有抽象方法,即抽象类的子类是可以直接实例化的,所以,通过父类的引用来指向子类的实例来间接地实现父类的实例化,这是父类引用指向子类对象的多态机制的体现。

    比如:public abstract class Toolkit extends Object ,Toolkit 是抽象类,不能直接通过new创建对象,但是 这个抽象类Toolkit 有构造方法 public Toolkit() ,它提供静态

    public static Toolkit getDefaultToolkit()给Toolkit创建对象,即有很方法会返回抽象类Toolkit 的实例,像public static Toolkit getDefaultToolkit()返回默认工具包。抽象类是无法通过 new 关键字创建对象的,但是这里为什么会返回抽象类抽象类的应用呢?抽象类的实例
    是怎么创建的呢?Toolkit i = Toolkit.getDefaultToolkit(); 这句话并没有实例化抽象类Toolkit ,Toolkit i 只是声明一个类型为Toolkit 的变量 i , Toolkit.getDefaultToolkit(); 是获取抽象
    类 Toolkit 的一个实例对象。从Toolkit.getDefaultToolkit(); 中所获得的实例其实就是一个Toolkit 的子类的对象,它实现了Toolkit 里面的抽象方法。
    	使用Toolkit.getDefaultToolkit(); 的好处:
    	1、new一定要生成一个新对象,分配内存;Toolkit.getDefaultToolkit(); 则不一定要再次创建,它可以把一个已存在的引用给你使用,这在效能上优于new;
    	2、new创建后只能当次使用,而Toolkit.getDefaultToolkit(); 可以跨栈区域使用,或者远程跨区域使用。所以Toolkit.getDefaultToolkit(); 通常是创建static静态实例方法的。
       抽象类其实是可以实例化的,但是它的实例化方式不是通过new方式来创建对象,而是通过父类的引用来指向子类的实例来间接地实现父类的实例化(因为子类要实例化前,一定会先
    实例化他的父类。这样创建了继承抽象类的子类的对象,也就把其父类(抽象类)给实例化了),但是,接口是不能被实例化的(接口压根就没有构造函数)


    public class CC {
    public static void main(String[] args) {
    A a = new B();
    a.my1();
    a.my();
    System.out.println(a.i);
    System.out.println(((B) a).i);


    }
    }
    abstract class A {
    int i = 0;


    public void my() {
    System.out.println("A my");
    }


    abstract void my1();
    }


    class B extends A {
    int i = 1;


    public void my1() {
    System.out.println("B A my1");
    }
    }

      


    运行结果为:


    展开全文
  • 本文实例讲述了Java的抽象方法和抽象类。...抽象类和抽象方法的规则:抽象类必须使用abstract修饰符来修饰,抽象方法必须使用abstract修饰符来修饰,抽象方法不能有方法体。抽象类不定被实例化。即使...
  • 下午试了半天,发现不行,没法搞 即对含有抽象方法的抽象类实例化失败。 网上有这个资料:  抽象类就一定可以实例化吗?  呵呵,一定哦。。看下面的例子:  public abstract ...
  • 转载:http://blog.csdn.net/zhanzhan0329/article/details/9173419首先明确地说:抽象不能实例化。我对抽象类能否被实例化产生疑问始于我看到一句话说:子类实例化会先实例化父类。而且,自己也知道,抽象类...
  • Java中抽象类真的不能实例化么?在学习的过程中,发现了一个问题,抽象类在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的。这样就把我搞糊涂了,既然有构造...
  • Java中抽象类真的不能实例化么?  在学习的过程中,发现了一个问题,抽象类在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的。这样就把我搞糊涂了,既然有...
  • Q:抽象类中一定有构造器,为什么不能实例化? A: ① 抽象类中的构造器是用来子类实例化的时候调用的,子类要加载父类的属性和方法。(不能因为是抽象类就和继承相矛盾) public class Demo01Test { @Test public...
  • 抽象类能否实例化不能,抽象类存在的意义是作为规范的存在,但需要注意的是,抽象类存在构造器。 抽象类能否不包含抽象方法? 可以,抽象类中可以不包含抽象方法,但是包含抽象方法的类必须声明为抽象类。 抽象类...
  • Java中抽象类真的不能实例化么?  在学习的过程中,发现了一个问题,抽象类在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的。这样就把我搞糊涂了,既然有...
  •  首先第一点:构造方法不能实例化,想象一下,如果可以实例化,那么,实例化的是所有的子类还是具体哪一个?  第二点:为什么可以有构造方法?  看看我们的写法:  public ConcreteAggregate(Object[] objs...
  • ----方法名与类名相同-----无返回类型-----子类不能继承父类的构造方法-----不能被static、final、abstract修饰(有final和static修饰的是不能被子类继承的,abstract修饰的是抽象类,抽象类是不能实例化的,...
  • 抽象类是Java中一种特殊的类,该类使用了abstract关键字进行修饰,该类允许有普通方法和抽象方法,该类不能够进行实例化(这个在后面进行解释)因为抽象类不能直接实例化,所以必须需要有实现子类。 问题二:为什么...
  • 抽象不能实例化

    2015-09-19 12:19:00
    1.抽象不能实例化 最近在搭建SSH框架的时候,我在封层底层的DAO【BaseDao.java】层时,有个方法不能再BaseDao具体实现,为了防止后面的的人,继承该基本类的人,不会忽略重载该类,我便将其写成抽象类,因此,...
  • 抽象类不是不能实例化的么?import java.net.*;import java.io.*;public classTCPClient {public static void main(String[] args) throwsException {Socket s= new Socket("222.91.106.117", 66...
  • 本文实例讲述了Java抽象类和抽象方法定义与用法。分享给大家供大家参考,具体如下:一...抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不...
  • Java中抽象类真的不能实例化么?在学习的过程中,发现了一个问题,抽象类在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的。这样就把我搞糊涂了,既然有构造...
  • 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定...
  • 2. 抽象类为什么不能实例化? 答案:Java语言的规定! 首先,抽象类是存在构造器的,在思考这个问题之前,我大概有一种这样的思维:既然有构造器,说明这个类可以被实例化(错误)。知道遇到这个问题后,我才意识...
  • 来源 |见贤思编程作者 |泰斗贤若如抽象能实例化吗?口气很强硬的说:“不能”!前言针对这个问题,在 19 年我在博客园专门写过一篇博客,为什么突然翻出来呢?昨晚有个大二的学弟专门加我好友来问我这个问题,当时...
  • 1、基本语法区别Java中接口和抽象类的定义语法分别为...抽象类的特点:a、抽象类不能实例化只能被继承;b、包含抽象方法的一定是抽象类,但是抽象类不一定含有抽象方法;c、抽象类中的抽象方法的修饰符只能为publ...
  • 首先明确地说:抽象不能实例化。 我对抽象类能否被实例化产生疑问始于我看到一句话说:子类实例化会先实例化父类。而且,自己也知道,抽象类作为父类,其子类是能调用他的属性和已实现方法的。这证明抽象父类在...
  • 抽象方法 简介 抽象方法java类中的一个特殊类,为什么要把它称为...3.抽象类不能实例化,只能被继承,然后子类实例化抽象方法解决的问题 多个有关系的类的共同行为在抽象方法中给出了抽象方法(并非具体的方...
  • 抽象类不能实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。3. 抽象类中的抽象方法...
  • Java抽象类和接口实例

    2020-03-12 10:11:00
    2、抽象类不能直接实例化,并且对抽象类使用 new 运算符是编译时错误。 3、在继承抽象类时,必须覆盖该类中的每一个抽象方法 4、jdk 传统的接口里的方法是没有body,从1.8jdk之后,开始允许加入body了,但是使用方法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,689
精华内容 1,475
关键字:

java抽象方法不能实例化

java 订阅