추상 클래스
지식 포인트 하나 : 추상 클래스는 인스턴스화 할 수 없습니다
추상 클래스 컬러 {공공 //는 추상 클래스 생성
공공 무효 쇼 () { 방법의 // 정의를
}
}
레드 클래스는 컬러 {공공 확장 // 레드가 상속 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();
}
}
运行结果:
好了,今天的抽象类学习就到这里了。