问:

船舶在公海上航行只服从于( )。 A.国际法 B.船旗国本国法 C.外国法 D.国际私法

答:
船舶在公海上航行需要遵守以下法律:
A. 国际法:公海属于国际法管辖范围,船舶在公海航行首先需要遵守相关的国际法律法规,如《联合国海洋法公约》等,这些法律规定了船舶航行自由、管辖权、救助义务等原则。
B. 船旗国法律:船舶在公海上航行同时也需要遵守船旗国的法律,因为船旗国对船舶拥有主权和统治权。船旗国可以制定针对本国船舶在公海行为的法律,如船籍登记、船员资格、船舶标准等,船舶必须遵守。
C. 外国法律:船舶在公海航行不受外国的主权管辖,不需要遵守其他国家的国内法。但如果船舶的行为影响到其他国家的利益,其他国家可以在一定条件下对该船舶采取一定行动,这属于国际法授权的例外情况。
D. 国际私法:国际私法主要调整私人关系中的涉外民商事关系,对船舶公海航行行为本身不具有规范作用。但如果在船舶上发生私法上的民商事纠纷,国际私法可能需要适用。
所以,对于船舶在公海的行为来说,其主要只需要遵守国际法和船旗国法律,不受外国国内法律的约束。国际私法只在涉及私人纠纷时才会适用。所以“船舶在公海上航行只服从于国际法和船旗国法律”是正确的说法。