精华内容
下载资源
问答
  • java中 抽象类构造方法的理解

    千次阅读 2016-08-03 12:20:54
    抽象类可以有构造方法,只是不能直接创建抽象类的实例对象而已。...抽象类虽然不能自己实例化对象,但是在子类新建对象调用子类的构造方法时会先调用抽象类的无参构造方法,这样一来,就可以给给抽象类的参数赋值了。

    抽象类可以有构造方法,只是不能直接创建抽象类的实例对象而已。

    在继承了抽象类的子类中通过super(参数列表)调用抽象类中的构造方法

    示例代码如下:

    运行结果:

    抽象类虽然不能自己实例化对象,但是在子类新建对象调用子类的构造方法时会先调用抽象类的无参构造方法,这样一来,就可以给给抽象类的参数赋值了。

    展开全文
  • 抽象类构造方法

    千次阅读 2019-12-11 15:49:33
    抽象类不能实例化(也就是不能直接 new 抽象类()),如果实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类抽象类中...

    1、抽象类的说明

    1. 抽象类不能被实例化(也就是不能直接 new 抽象类()),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。

    2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

    3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。

    4. 构造方法,类方法(用static修饰的方法)不能声明为抽象方法。

    5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

    2、抽象类带有无参的构造方法

    public abstract class Father {
        public Father(){
            System.out.println("抽象类的构造参数");
        }
    }
    
    public class Son extends Father {
        public Son() {
            System.out.println("子类的构造参数");
        }
    }
    
    public class Test {
        public static void main(String[] args) {
            Father father = new Son();
    
        }
    }
    

    输出结果:

    抽象类的构造参数
    子类的构造参数
    
    

    3、抽象类带有有参的构造方法

    public abstract class Father {
        public Father(String param){
            System.out.println("抽象类的构造参数" + param);
        }
    }
    
    public class Son extends Father {
        public Son(String params) {
            super(params);
            System.out.println("子类的构造参数" + params);
        }
    
    }
    
    public class Test {
        public static void main(String[] args) {
            Father father = new Son("aaaa");
    
        }
    }
    

    输出结果:

    抽象类的构造参数aaaa
    子类的构造参数aaaa
    

    也就是说:在生成子类对象前,必须要先调用抽象父类的构造方法

    展开全文
  • 接口是我们常用的,抽象类好像并不是怎么常用,但这并不代表他不重要,他可以继承,可以有构造方法,可以给类中的成员变量赋初值,接口就没有这样的功能。       抽象类的出现使得...

          接口是我们常用的,抽象类好像并不是怎么常用,但这并不代表他不重要,他可以被继承,可以有构造方法,可以给类中的成员变量赋初值,接口就没有这样的功能。
          抽象类的出现使得位于上层的类更具有通用性。从某种角度来看,祖先类更加具有通用性。
          普通类加abstract即为抽象类。抽象类不能够被实例化,也就是说我定义了一个抽象类public abstract class Person{...}类,这个person类不能被new;大家也都知道,在new的时候是调用了构造方法,既然抽象了不能够被new为什么还要有构造方法?世界之大,无奇不有,这个方法行不通我们就想另一种方法,我们可以通过new,可以通过set、get方法给成员属性赋值,我们还可以在子类中调用super()方法给父类赋初值,然后继承父类当中的属性,既然不能通过new来调用抽象类的构造方法,我们可以看到还可以通过子类的super()方法来调用抽象类的构造方法,并对其赋值,例如我编写了一个Student类,继承于抽象类Person,public class Student extents Person{...},Student类可以被实例化,要想对Person类中的某些成员方法赋初值,可以在Student类中调用super()方法,对抽象类的成员属性进项赋值,继承了抽象类的子类就可以对抽象类的一些属性进行赋值,并且可以继承抽象类已经赋值过的方法和属性。
          需要注意的是,还可以定义一个抽象类的对象变量,但是他只能引用非抽象类子类的对象。例如,Person p = new Stduent(“张三”,28);这里的p是一个抽象类Person的变量,Person引用了一个非抽象子类Student的实例。
          抽象类中可以没有抽象方法,但是有抽象方法的类一定是抽象类,在抽象类中的抽象方法可以只定义,空实现,但是实现了抽象类的子类必须要重写实现抽象类中的抽象方法。

    展开全文
  • java抽象类构造方法吗?

    千次阅读 2020-05-27 21:50:09
    定义抽象类 格式 : abstract class 类名{} 举例 : 抽象类中的 方法 抽象方法 abstract void eat();...抽象类中,有构造方法,但是有不能new,那么构造方法干嘛的呢? 给子类用的!!! 抽象类,一样可以使用多态来创建子

    定义抽象类
    格式 :
    abstract class 类名{}

    举例 :
    
    抽象类中的 方法
    
    	抽象方法  abstract void eat();
    	没有方法体,没有{},以; 结尾.  
    
    
    	非抽象方法 
    		void sleep(){
    			syso ....
    		}
    
    抽象类子类:
    	1.非抽象类,但是必须重写父类的抽象方法
    
    	2.抽象类,无须管抽象方法,但是子类不能new了
    
    抽象类中,有构造方法,但是有不能new,那么构造方法干嘛的呢? 
    给子类用的!!!
    
    抽象类,一样可以使用多态来创建子类对象 .
    总结: 一般来说,会把父类定义为抽象的类.测试的时候,可以通过多态,来实现子类功能. 
    A:面试题
    一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?
    
    abstract class A{
    	show(){
    	
    	}
    	method(){
    	
    	}
    }
    
    class B {
    	//1.无法new 
    	private B(){} 
    
    
    	//2.如何获取对象?  
    	public static B getInstance(){
    		return  new B();
    	}
    }
    
    class Test{
    	main(){
    	B b = B.getInstance();
    	}
    }
    

    B:面试题
    abstract 不能和哪些关键字共存?

    private    冲突 -- 对子类隐藏,而 abstract 必须让子类重写 
    final      冲突 -- 不能被重写,矛盾 
    static     无意义-- 类名调用,没有方法体,无意义
    
    public static 
    
    public static final 
    
    方法前面  public 
    
    属性前面  private 
    

    */

    展开全文
  •  抽象类中的构造方法其实是用来给继承的子类来用的,因为构造方法相当于初始化方法,当子类调用构造方法时必须调用父类构造方法,所以你可以在子类产生对象 时抽象类中按需求初始化抽象类中的字段以及执行一些初始...
  • Java抽象类及子类方法调用顺序

    千次阅读 2017-05-05 15:16:05
    2) 抽象类中的方法调用子类实现的抽象方法方法 3) 抽象类可以在子类未实例化时调用子类实现的抽象方法; 4) 在抽象类构造方法中调用了自己未实现的抽象方法,那么对应子类实现了此方法;在抽象类实例化之后,子类未...
  • 如果有,其带参构造和无参构造什么时候,怎样调用?--无参构造自动调用,带餐构造必须显式调用,和是否抽象类无关. /*--===------------------------------------------===--- 目的:抽象类中可以有构造函数吗? 如何...
  • [Java基础]Java中抽象类和接口中有构造方法吗?

    万次阅读 多人点赞 2017-07-05 10:56:13
    2.问题描述:Java中抽象类和接口中有构造方法吗? 3.问题解答: (1)Java中抽象类和接口中有构造方法吗? ①在接口中 不可以有构造方法 在接口里写入构造方法时,编译器提示:Interfaces ...
  • 构造函数: 1.在对象初始化时调用,方法名与类名完全相同; 2....如果不写,系统将当做写了一个无参构造函数处理;...显示调用父类构造方法——用super(); 2.若显示调用,必须将super()方法写在最前面;
  • Java中规定:在实例化子对象时,必须先调用父类的构造方法,再调用子类的构造方法(先有父母再有孩子)。且必须在子类构造方法的第一行调用父类方法。 一般在子类中显式的调用父类构造方法,若没有显式调用调用...
  • 今天问到抽象类要不要有构造函数的时候, 我随口一答应该是没有的, 我以为, 抽象类是不能直接用new来实例化的, 所以也就不需要再去写构造函数了; 随后查了一下明白: 抽象类也需要构造函数, 在大多数情况中抽象类...
  • 抽象类与接口的构造方法

    千次阅读 2016-02-12 09:14:29
    首先抽象类是有构造方法的,我先前一直以为抽象类不能实例化所以是没有构造方法的,,显然这个想法是错误的,因为构造器跟对象没有关系。在此明白一点构造器并不是产生一个对象,而是对成员变量进行初始化。之前看过...
  • 定义抽象类以及抽象方法,构造方法,将子类1定义为抽象类,子类2继承子类1,子类2重写抽象方法。用以帮助理解多重继承、抽象方法重写调用、super、this关键字使用、构造方法、重载这几个的知识点
  • 2.问题描述:Java中抽象类和接口中有构造方法吗? 3.问题解答: (1)Java中抽象类和接口中有构造方法吗? ①在接口中 不可以有构造方法 在接口里写入构造方法时,编译器提示:Interfaces cannot have ...
  • 抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类...
  • JAVA中抽象类不能实例化,但是却可以写构造方法,为什么呢?  首先第一点:构造方法不能实例化,想象一下,如果可以实例化,那么,实例化的是所有的子类还是具体哪一个?  第二点:为什么可以有构造方法?  看...
  • 如何调用抽象类中的非抽象方法

    千次阅读 2020-10-18 15:40:28
    如何调用抽象类中的非抽象方法 1.抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过...
  • Java中抽象类和接口中有构造方法吗?

    千次阅读 2019-04-18 20:22:00
    (1) Java中抽象类和接口中有构造方法吗? ①在接口中 不可以有构造方法 在接口里写入构造方法时,编译器提示:Interfaces cannot have constructors。 A. 构造方法用于初始化成员变量,但是接口成员变量是常量,无需...
  • 验证抽象类是否可以在子类未实例化时调用子类实现的抽象方法; 验证java的多态性 实例抽象类:package com.secbro.test.abstractInit;/** * @author zhuzhisheng * @Description * @date on 2016/5/28. */ ...
  • java中子类调用父类的构造方法

    千次阅读 2014-11-21 18:40:08
    在Java中,子类的构造过程中,必须调用其父构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的?  答案如下:   当你new一个子类对象的时候,必须首先要new一个父类的对像...
  • java抽象类构造函数的含义

    万次阅读 2016-06-28 10:04:18
    抽象类虽然自身不可以实例化,但是其子类覆盖了所有的抽象方法后,是可以实例化的,所以抽象类构造函数,适用于给其子类对象进行初始化的       构造函数是对象的基本,没有构造函数就没有对象。 若果在...
  • 对于抽象类以及接口的概念,大家都容易把这两者搞混,其实我也一样,在听李建忠老师的设计模式时,他也老把抽象类说成接口...分析对象,提炼内部共性形成抽象类,用以表示对象本质,即“是什么” 为外部提供调用或功能
  • 抽象类,抽象方法

    千次阅读 2014-09-19 11:48:37
    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test ... //抽象类不能是密封的或静态的 ... //不能初始化的类叫做抽象...这个方法可以由该抽象类的子类对象来调用
  • Java中抽象类构造器的作用

    千次阅读 2016-04-28 15:25:03
    因为抽象类不可实例化,那么只能在子类实例化时调用抽象类构造器才有用 看实例代码: abstract class Animal { Animal(){ System.out.println("抽象类Animal无参构造器"); //此处执行前会默认执行super() } ...
  • Java抽象类 详解

    万次阅读 多人点赞 2016-10-05 00:06:35
    一、抽象类的基本概念普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法、普通方法、static方法、常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分。...
  • 抽象类含有构造器吗?

    千次阅读 2016-04-24 11:41:01
    在继承了抽象类的子类中通过super()或super(参数列表)调用抽象类中的构造方法。示例代码如下: package ahu; abstract class Base{ int a=7; public Base(){ a=8; } public Base(int i){ a=i;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 367,038
精华内容 146,815
关键字:

抽象类的构造方法什么时候被调用