데이터 과학

상속 예제 본문

AP/AP Computer Science A

상속 예제

티에스윤 2024. 1. 4. 14:49

상속에 대한 예제입니다. 

 

 

예제 1) 상속과 오버라이딩에 대한 예제입니다. 

 

아래 예제는 이 컴파일러에서 실행하면 결과가 나옵니다. 

 

https://www.programiz.com/java-programming/online-compiler/

 

 

class Main {
   public static void walk() {
       System.out.println("Human walks");
   }
}

class Boy extends Main{
   public static void walk(){
       System.out.println("Boy walks");
   }
   public static void main(String[] args) {
            Main obj = new Boy();
            Main obj2 = new Main();
       
       obj.walk();
       obj2.walk();
   }
}

 

결과 : Human walks
          Human walks

 

 

 

예제 2) 

 

class Human{
   //Overridden Method
   public void walk() {
       System.out.println("Human walks");
   }
}
class Demo extends Human{
   //Overriding Method
   public void walk(){
       System.out.println("Boy walks");
   }
   public static void main( String args[]) {
       /* Reference is of Human type and object is Boy type */
       Human obj = new Demo();
       /* Reference is of HUman type and object is of Human type.*/
       Human obj2 = new Human();
       
       obj.walk();
       obj2.walk();
   }
}

 

결과 :

 

 

 

 

예제 3)

 

Student와 UnderGrad, GradStudent 상속에 대한 예제입니다. 

 

 

public class Student
{
//data members
   public final static int NUM_TESTS = 3;
   private String name;
   private int[] tests;
   private String grade;

 

//constructor
   public Student() {
        name = "";
        tests = new int[NUM_TESTS];
       grade = "";
}


//constructor
    public Student(String studName, int[] studTests, String studGrade) {
         name = studName;
         tests = studTests;
        grade = studGrade;
}


    public String getName() {

            return name; }

 

    public String getGrade() {

             return grade; }


    public void setGrade(String newGrade) {

          grade = newGrade; }


    public void computeGrade() {

          if (name.equals(""))
                grade = "No grade";
         else if (getTestAverage() >= 65)
               grade = "Pass";
        else
              grade = "Fail";
}

public double getTestAverage() {


    double total = 0;
   for (int score : tests)
        total += score;
        return total/NUM_TESTS;
}


public static void main(String args[]){
//Student s = new Student();
//Student g = new GradStudent();
//Student u = new UnderGrad();

//GradStudent g = new Student();
//UnderGrad u = new Student();
//Consider these valid declarations:


   Student s = new Student("Brian Lorenzen", new int[] {90,94,99}, "none");
   Student u = new UnderGrad("Tim Broder", new int[] {90,90,100}, "none");
   Student g = new GradStudent("Kevin Cristella", new int[] {85,70,90}, "none", 1234);
   }
}

 

 


class UnderGrad extends Student {

 

    public UnderGrad() //default constructor
        { super(); }


//constructor
     public UnderGrad(String studName, int[] studTests, String studGrade) {

          super(studName, studTests, studGrade);

     }


    public void computeGrade(){
          if (getTestAverage() >= 70)
              setGrade("Pass");
         else
              setGrade("Fail");
   }
}



class GradStudent extends Student  {
    private int gradID;

 

    public GradStudent() //default constructor

     {
       super();
       gradID = 0;
     }


//constructor
public GradStudent(String studName, int[] studTests, String studGrade, int gradStudID) {
     super(studName, studTests, studGrade);
     gradID = gradStudID;
}


public int getID() {

    return gradID;

}

 

 

public void computeGrade() {

    super.computeGrade();
   if (getTestAverage() >= 90)
   setGrade("Pass with distinction");
   }
}

 

 

 

 

위 Student 상속되는 내용을 Blue J (https://www.bluej.org/) 프로그램으로 작성한 내용입니다. 

 

 

 

프로그램 소스 입니다. 

 

GradStudent.java
0.00MB
student.java
0.00MB
undergrad.java
0.00MB

 

 

 

'AP > AP Computer Science A' 카테고리의 다른 글

Blue J 설치  (0) 2024.01.07
super 예제  (1) 2024.01.05
생성자 예제  (0) 2024.01.04
제어문 관련 예제  (1) 2024.01.04
Case Study - Magpie lab  (0) 2023.08.22