What is the best approach to implement single and multiplayer in one game (single is with AI and multiplayer is with live players), should i make two different scenes or something else?
I tried implementing single player and multiplayer game in two different scenes but there need to make every change in both the scenes , and changes are needed to place in two scenes , can we use something like inheritance in unity or what is the best way …
You should use the same scene, and you can set things like the AI to disabled and then enable the gameobject with the AI script when it’s needed (this is a simple explanation). But from a design perspective you will have a separate class for handling AI versus the human, and only one or the other will be there at all. You might even make a base class with some functionality and the AI and Player classes inherit from that class. You can use Prefabs to avoid duplicating work in two scenes, but you shouldn’t do multiple scenes. Look up Prefabs, and look up C# class inheritance.
I think the best way is to do two different scenes with different scripts that are similar. It takes after that you are an all-encompassing script (like eg GameManager) with the save and load system.
2 scenes would be better. Less potential troubleshooting issues, but more importantly - the client isn’t loading the game and then turning off all the singleplayer stuff. Instead it just loads the game. Disk space is so massive these days even decreasing the loading screen by a second is better than adding say a gig of storage. (If it’s more than a gig then don’t do two scenes.)
Inheritence is without a doubt the way to go.
I made a base class with all the basic functionalities (inheriting from monobehaviour) and then created 2 inheriting classes, one for offline and the other for online, both use functions from the base class except one checks for dummy players or if islocal and the other works normally.
this way you can have a simple bool for “isoffline” and simply change the base code and affect both players without too much stress and refactoring. 
Consider implementing Single Player as localhost Multiplayer.
Just don’t tell the player about it.