I think the best way to approach the gender issue of the word cat, is to think of it as a generic feminine (compare roughly to Hebamme, Maus or Ente), just like, e.g., Schüler is a generic masculine. Thus, unless the context makes clear that Katze refers to female cats, you must specify this, e.g., using the adjektiv weiblich.
Some examples (with an example for Schüler for comparison):
Ich habe eine Katze. – I have one cat (which can have either gender).
Ich kenne einen Schüler. – I know one pupil (which can have either gender).
Ich habe einen Kater. – I have one male cat.
Ich kenne eine Schülerin. – I know one female pupil.
Ich habe eine weibliche Katze. – I have one female cat.
Ich kenne einen männlichen Schüler. – I know one male pupil.
Ich habe eine Katze und einen Kater. – I have one female and one male cat.
In meiner Klasse sind 15 Schüler und 13 Schülerinnen. – There are 15 male and 13 female pupils in my class.
(The generic feminine or masculine is dissolved by the context, as you are contrasting with Kater or Schülerin, respectively)
Rollo ist die einzige weiße Katze in der Straße. – Rollo (who can have either gender) is the street’s only white cat (of either gender).
Alex war der größte Schüler der Klasse. – Alex (who can have either gender) was the largest pupil of the class (of either gender).
This example stays the same, if Alex is replaced with clearly gendered name like Alexander or Alexandra.
Rollo ist die einzige weiße weibliche Katze in der Straße. – Rollo is the street’s only white female cat.
Alexander war der größte männliche Schüler der Klasse. – Alexander was the largest male pupil of the class.
Rollo ist der einzige weiße Kater in der Straße. – Rollo is the street’s only white male cat.
Alexandra war die größte Schülerin der Klasse. – Alexandra was the largest female pupil of the class.