Yes, you need to call the super-constructor from B's constructor. If you don't specify either this(...) or super(...) at the start of a constructor, an implicit call to super() will be inserted for you - a call to the parameterless constructor of the superclass. In this case you don't have a parameterless constructor in A - so you need to explicitly specify the constructor you want to call, along with the arguments.
Chances are you don't want another variable called s within B, though...
I suspect you want this:
class B extends A {
B(String s) {
super(s);
}
}
It's important to understand what would happen if you did also declare a variable called s in B. You'd then have two independent variables for each instance of B - the one declared in A and the one shadowing it in B. They could easily take different values... which would be extremely confusing.
Note that additionally it's almost always a good idea to make fields private - at which point you don't really know which variables your superclass declares, as you can't access them. If you happen to shadow a variable, that at least doesn't lead to any apparent ambiguity (which is, of course, handled by the specification). It's still typically a mistake for one variable to have the same name as a variable in its superclass though - it suggests you've got two different sources of truth for the same information.