Поскольку doSomething объявлен в classOne, он будет доступен в любых подклассах. Вы не можете скрыть это или уменьшить его видимость (сделать его частным или защищенным). Поскольку ClassTwo является ClassOne, он может делать все, что может делать ClassOne.
Самое близкое, что вы можете прийти - что-то вроде:
class ClassTwo extends ClassOne {
public void doSomething() { throw new UnsupportedOperationException(); }
}
, который не совсем делает то, что вы хотите.
Если вы находитесь в ситуации, когда вам нужно сделать это лучше, вероятно, следует переосмыслить иерархию классов на типы вашего класса, которые имеют метод doSomething, и типы, которые не
public class Parent { ... }
public class ClassOne extends Parent {
public void doSomething(){ ... }
}
public class ClassTwo extends Parent {
}
или поместите doSomething в интерфейс.