Why subnet mask for IP 10.0.1.4 is 255.255.255.0?
Classful addressing has been relegated to the dustbin of history, made obsolete by VLSM and CIDR. The only place it's still used today is Cisco certification exams.
What you're seeing here is VLSM (Variable Length Subnet Mask). VLSM has been the norm on the Internet since 1995 or so after having been proposed in 1985. So your reasoning is out of date by at least 17 years.
You're also confusing subnetworks with networks. Even with classful addressing, this would be a class A network. That would mean the network mask would be 255.0.0.0. But that wouldn't say what the subnet mask was. See this link for more details.
The subnet mask specifies which part of the address range will be considered to be part of the network (the subnet) that your computer is on. So if your router has decided to use a subnet mask of 255.255.255.0 and to give you an IP address of 10.0.1.4, that means it is going to be handing out IP addresses in the range from 10.0.1.1 through 10.0.1.254 (potentially) to other computers which request an address.
There is a pretty good explanation of how these numbers work together in What is a subnet mask, and the difference between a subnet mask of 255.255.255.0 and 255.0.0.0?. You also might want to look at What are the essentials of a Subnet mask?.
So the information you posted gives an indication about how the router is going to behave, but there is no reason that it could not have been configured to behave differently.
For example, the router could have used a subnet mask of 255.255.255.192. This corresponds to the following binary mask value (Subnetwork - Subnetting from Wikipedia):
11111111.11111111.11111111.11000000
By doing this, the router would be limiting the number of IP addresses it could assign within the subnet (there are fewer non-zero bits to "play with" in the mask). But also, the router could then assign IP addresses to four different subnets by handing out addresses where those last "11" bits above are held fixed at each of the following values (see Divide 192.168.1.024 into 4 subnets? for a similar example):
- 00
- 01
- 10
- 11
This could give an administrator more flexibility in managing computers and other devices based on the network they are within.
The short answer to your question is... it's kind of arbitrary, and the setup you are seeing is pretty customary. Apple could have done this differently if they had wanted but sometimes it is best to "think the same as everyone else." :-)
You're missing that those classes of IP addresses are just a guide of how the IP addresses should be distributed. It's not a rule or a norm. You can have a class A IP addresses being networked in a subnetwork so they perform as class C IP addresses.