내 첫 블로그 기사 (추상 클래스 운동)

추상 클래스

지식 포인트 하나 : 추상 클래스는 인스턴스화 할 수 없습니다

추상 클래스 컬러 {공공     //는 추상 클래스 생성
    공공 무효 쇼 () {    방법의 // 정의를
   }
}


 

레드 클래스는 컬러 {공공 확장    // 레드가 상속 Color 클래스하는 클래스 생성
   공공 무효 쇼 () {            // 레드 쇼 () 메소드에서 다시
       에서 System.out.println을 ( "나는 빨간색입니다");
   }
}


 

클래스 데모 {공공   //은 데모 시험 방법 클래스 만들기
   무효 메인 (문자열 []에 args) {공공 정적을
        색상 적색 새로운 새로운 C1 = ();       // 인스턴스화 객체
         c1.show을 ();      // 표시 방법 (C1)가 인용

// 컬러 C2 새로운 색상 () = ; // 이 오류가 발생되는 추상 클래스가 인스턴스화되지 않기 때문에
    }
}

 

지식 포인트 2 : 추상 메소드

방법은 추상 클래스의 추상 서브 클래스를 다시 작성해야합니다

추상 클래스 컬러 {공공       //는 추상 클래스 생성
     추상적 인 공공 무효 쇼 ();   // 추상 메소드를 만듭니다. (주 특별한 중괄호가)
}

레드 클래스는 공공 컬러 {확장    컬러 상속 // 생성 레드 클래스, 클래스를

         @Override
         공공 무효 쇼 () {      // 추상 메소드 추상 상위 클래스 또는 오류 오버라이드 (override) 할 필요가 서브 클래스 // TODO 자동 생성 된 스텁 방법,              에서 System.out.println을 ( "나는 빨간색입니다");    } }
             




 

블루 컬러 클래스는 {공공 확장      //이의 블루 클래스를 생성, 클래스 상속 색

   @Override
     공공 무효 쇼 () {    // 추상 메소드 추상 상위 클래스 또는 오류 오버라이드 (override) 할 필요가 서브 클래스
           // TODO 자동 생성 된 스텁 방법,
           에서 System.out.println을 ( "나는 파란색입니다");
    }

}


 

public class Demo {    //创建Demo类,作为测试类
   public static void main(String[] args) {
       Color c1 = new Red();   //实例化对象
       Color c3=new Blue();
       c1.show();   //引用c1的show方法
       c3.show();
   }
}

练一练

代码如下:

public abstract class Animal {   //父类
    public Animal() {
        System.out.println("创建一个动物");
  }

    public abstract void eat();       //定义吃的抽象方法

   abstract public void reproduce();      //定义繁殖的抽象方法
}


 

public abstract class Bird extends Animal{    //鸟类
    String feather ;     //创建属性羽毛
    public Bird(String feather) {    //创建Bird()带参构造方法
          System.out.println("创建了一个鸟类");
          this.feather=feather;
   }

   public void growfeather() {           //长羽毛这是一个具体的方法,不是抽象的方法
          System.out.println("长满"+feather+"羽毛");
}

   abstract public void move();       //鸟类动的方式很多,所以将鸟类的移动定义成一个抽象方法

    public void reproduce() {      //定义抽象类鸟类的繁殖方式为下蛋
          System.out.println("下蛋");
    }

}


 

public class Seagull extends Bird{  //创建海鸥类,继承Bird类

     public Seagull(String feather) {     //创建Seagull的带参构造方法
         super(feather);     //用super显示父类带参构造方法
         System.out.println("我是一只海鸥");  
  }

     @Override
     public void move() {   //知识点二
         System.out.println("海鸥飞翔");
   }

    @Override
    public void eat() {    //知识点二
         System.out.println("海鸥吃鱼");
     }

}


 

public class Chicken extends Bird{    //创建鸡类,并且继承Bird类

        public Chicken(String feather) {  //创建Chicken带参构造方法
             super(feather);
             System.out.println("我是一只小鸡");
   }

       @Override
       public void move() {     //知识点二
            System.out.println("小鸡会跑");
   }

       @Override
       public void eat() {    //知识点二
       System.out.println("小鸡吃米");
    }

}


 

public class Demo {    //创建Demo类,作为测试类
   public static void main(String[] args) {
       Seagull jack=new Seagull("白色");    //实例化对象
       jack.eat();  
       jack.move();
       jack.growfeather();
       jack.reproduce();

       System.out.println();

       Chicken rose =new Chicken("黄色");
       rose.eat();
       rose.move();
       rose.growfeather();
       rose.reproduce();
   }
}

运行结果:

 


 

好了,今天的抽象类学习就到这里了。

 

추천

출처www.cnblogs.com/Leia2/p/12013655.html