Why am I unable to change the value of a Boolean?

I am trying to make my game restart after the game ends (gameOver == true). The problem is that I set gameOver to true in my GameOver() function but it reverts back to being false by the time the Update() function is called. The code is below:

using UnityEngine;
using System.Collections;

public class GameController : MonoBehaviour
{
private bool gameOver;

void Start ()
{
	gameOver = false;
}

void Update ()
{
    Debug.Log (gameOver); // This is always false
if (restart) {
Debug.Log ("I can't get this to print");
}
}
public void GameOver ()
{
	gameOver = true;
    Debug.Log(gameOver);
}
}

I have a function that calls GameOver() when the player dies. It appears to be working and the Debug.Log(gameOver) inside GameOver() prints when the game end, but something appears to be making it false again. This is inside the GameController() so I wouldn’t expect the Start() command to be called again. Do I have to use the get and set commands?

This is how booleans work.

public bool example;
void Start(){
    bool = false;
}
void Update(){
    Toggle();
    print(bool);
    //This will print true the first time because it toggled first, then it will print
    //false, and then it will continue alternating.

}
void Toggle(){
    example = !example;
}

If you found this answer helpful, please upvote! That way I can help more people!