자바 상속과 다형성 숙제

1, 실험실 실습

 

 

 근원


클래스 조부모
{

    공공 조부모 ()
  {
         에서 System.out.println ( "조부모가 만들었습니다.");
 
}

    공공 조부모 (문자열 문자열)
 {
         에서 System.out.println ( "조부모 Created.String :"+ 문자열);
 
 }
}
 
클래스 부모 조부모를 확장
{

    공공 부모 ()
  {
         //super("Hello.Grandparent. ");
         에서 System.out.println ( "부모 작성");
 
       // 슈퍼 ( "Hello.Grandparent.");
   }
}
 
클래스 자식은 부모를 확장
{

    공공 아이 ()
  {
 
        에서 System.out.println ( "아이가 만든");
   }
}
 
공용 클래스 TEST1
{

    공공 정적 무효 메인 (문자열 인수 [])
  {
         자식 C = 새로운 자식 ();
 
  }
}
 
영업 실적
 
조부모 만들었습니다.
부모 만든
아이 만든
 
결론

 

 

2, 생각

서브 클래스의 생성자는 실행하기 전에 왜, 당신은 부모 클래스의 생성자를 사용해야합니까? 당신은 할 수 있나요? 이유는 무엇입니까?

생성자 변수 서브 클래스는 부모 클래스의 생성자를 호출하지 않는 경우, 부모 클래스를 상속 초기화되지 않은 변수의 일부 변수를 초기화하는 데 사용됩니다.

서브 클래스의 생성자 호출이 먼저가 아닌 부모 클래스와 서브 클래스 변수는 오류가 발생할 경우

 

삼,

클래스  {

}

 공공  클래스  PART1 {

     공공  정적  무효  메인 (문자열 []에 args) {

     체계. 밖으로 .println (  A ());

     }

 }

영업 실적은 다음과 같습니다 :

exercise.A@15db9742

16 진수 객체 클래스 객체 리턴 산출 해시 값과, 생성자 호출을 초기화 할 때.

 

네,

 

 

 

 클래스 아버지
{
 공공 무효 쇼 ()
 {
  에서 System.out.println ( "父类");
 }
}
클래스 아들은 아버지 확장
{
 공공 무효 쇼 ()
 {
  super.show ();
  에서 System.out.println ( "子의类");
 }
}
공용 클래스 TEST2
{
 공공 정적 무효 메인 (문자열 []를 인수)
 {
  인자 S = 새로운 인자 ();
  s.show ();
 }
}

결과 :
부모

아강

 

5,

공공  클래스  ParentChildTest {

공공  정적  무효  메인 (문자열 []에 args) {

부모의 부모 = 새로운  부모 ();

parent.printValue ();

아이 아이 = 새로운  아이 ();

child.printValue ();

 

부모 = 아이;

parent.printValue ();

 

parent.myValue ++;

parent.printValue ();

 

((아동) 부모) .myValue ++;

parent.printValue ();

 

}

}

 

클래스의  부모 {

공공  의 INT  myValue = 100;

공공  무효  printValue () {

체계. 아웃 .println ( "Parent.printValue () myValue ="+ myValue);

}

}

클래스  아이  확장  부모를 {

공공  의 INT  myValue = 200;

공공  무효  printValue () {

체계. 아웃 .println ( "Child.printValue () myValue ="+ myValue);

}

}

1. 어떤 프로그램의 결과 남아?

2.이 출력을 얻을 것이다 방법을 설명?

3. 컴퓨터가 왜이 결과는 다음 실행 결과에서 실행하는 이유입니다 얻을, 당신은 자바의 어떤 구문 기능을 요약 할 수 잘못 아닌가요?

 

결과

개체가 서브 클래스 상위 클래스의 객체, 메소드 호출 상위 클래스의 오브젝트에있어서의 모든 서브 클래스를 할당되면 parent.myValue ++ 값이 경우, 그 결과는 여전히 서브이다 myValue 간단히 상위 클래스의 값이 변경 200 .myValue ++가 myValue 서브 클래스 값을 변경 myValue 값 및 ((자식) 상위), (201)의 출력이다.

추천

출처www.cnblogs.com/songxinai/p/11742838.html