How to make subclass variables appear in inspector with enum

I have a script called item that is a constructor and has an enum that allows you to choose the item type. I also have another script inheriting from Item called Weapon that has specific variables. Is there any way that I could make the variables for that class show up based on what you choose from the enum? Thank you beforehand for any help.
Here are my scripts:

using UnityEngine;
using System.Collections;

[System.Serializable]
public class Item
{
	public int itemID;
	public string itemName;
	public string itemDescription;
	public Sprite itemIcon;
	public ItemType itemType;
	public GameObject itemModel;
	public int itemValue;
	public int itemDurability;
	
	public enum ItemType
	{
		Weapon,
		Spell,
		Consumable,
		QuestItem,
		WeaponPart,
		Head,
		Torso,
		Hands,
		Legs,
		Feet,
		None
	}
}

And then there is Weapon which inherits from Item:

using UnityEngine;
using System.Collections;

public class Weapon : Item 
{
	public int weaponDamage;
}

It’s very simple for testing purposes.

You wont be able to attach Weapon script to gameobject at all, as Weapon nor Item inherits from MonoBehaviour. Otherwise you have to write editor script.
Here’s and example i did and it works fine.

[System.Serializable]
public class Item{ 
    public int itemID;
    public string itemName;
    public string itemDescription;
    public Sprite itemIcon;
    public ItemType itemType;
    public GameObject itemModel;
    public int itemValue;
    public int itemDurability;

    public enum ItemType {
        Weapon,
        Spell,
        Consumable,
        QuestItem,
        WeaponPart,
        Head,
        Torso,
        Hands,
        Legs,
        Feet,
        None
    }

}

[System.Serializable]
public class Weapon : Item {  
    public int weaponDamage;
}


public class Test : MonoBehaviour {
    public Weapon weapon;
}