Can a task have multiple predecessor and successor tasks?

Yes. However, keep in mind that there can only be one dependency between two tasks. For example, two tasks can't have both start-to-start and finish-to-finish dependencies.