1. 아래는 간단한 C#코드입니다.. using System; public class CClass {         public void Print()         {                 Console.Write("test\n");         } }; public class CTest {                 public static void Main()         {                 CClass obj = new CClass();                 obj.Print();         } }; 저기에서요 CClass클래스를 선언할때 앞에 public를 붙였는데여.. 제가 public를 빼고 테스트해본결과 같은결과가 나왔거든요?? 아래처럼말이죠.. using System; class CClass         // 여기 선언부분에서 public를 뺐음.. {         public void Print()         {                 Console.Write("test\n");         } }; public class CTest {                 public static void Main()         {                 CClass obj = new CClass();                 obj.Print();         } }; 에러도 없고 같은 결과가 나왔는데.. 도대체 클래스선언부에 public을 붙이고 안붙이고의 차이가 뭡니까?? 2. C#에서는 interface라는 개념을 도입하고 있는데여.. 제가 볼때에는 추상클래스로도 충분히 대체가능하거든요?? 그런데 왜 interface와 추상클래스를 따로 분리해서 개념을 만들었을까여?? 이유좀 알려주세여..