Java教程

Java 抽象类

本文主要是介绍Java 抽象类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.什么是抽象类?   类和类之间有共同的特征,将这些共同特征提取出来,形成的就是抽象类。   类本身是不存在的,所以抽象类是无法创建对象的(无法实例化)。 2.抽象类属于什么类型?   属于引用数据类型。 3.抽象类怎么定义?   [修饰符列表] abstract class 类名{     类体   } 4.抽象类是无法实例化的,无法创建对象的,所以抽象类是被子类继承的 5.final 和abstract 不能联合使用 6.抽象类的子类可以是抽象类,也可以是非抽象类 7.抽象类无法实例化,但是抽象类有构造方法,构造方法是供子类使用的 8.抽象类关联到一个概念:抽象方法。什么是抽象方法:   抽象方法表示没有实现的方法,没有方法体的方法。   例如: public abstract void doSome();   特征是:1.有abstract 关键字       2.没有方法体 9.抽象类中不一定有抽象方法,但抽象方法必须出现在抽象类中 10.重点:   这是一个强制规定:     一个非抽象的类继承抽象类,必须将抽象方法进行覆盖/重写,不然编译报错!   下面是一个抽象类的例子:可以复制粘贴,学习,   这个例子采用了继承、多态、抽象类、方法重写等。是一个综合练习,如果能理解,那么就掌握了前面的所说的内容了。
package com.learnroom.test10;
//抽象类鸟
public abstract class Bird {
//    抽象方法fly
    public abstract void fly();
}
package com.learnroom.test10;

public class RedBird extends Bird {
    private String color;

    public RedBird() {
    }

    public RedBird(String color) {
        this.color = color;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    @Override
    public void fly() {
        System.out.println(this.color + "的技能是:正常飞行");
    }
}
package com.learnroom.test10;

public class BlueBird extends Bird {
    private String color;

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public BlueBird() {
    }

    public BlueBird(String color){
        this.color = color;
    }

    @Override
    public void fly() {
        System.out.println(this.color +"的技能是:一个变三个" );
    }
}
package com.learnroom.test10;

public class YellowBird extends Bird{
    private String name;

    public YellowBird() {
    }

    public YellowBird(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public void fly() {
        System.out.println(this.name + "的技能是:加速飞行");
    }
}
package com.learnroom.test10;

public class SlingShot {
    public void send(Bird bird){
        bird.fly();
    }
}
package com.learnroom.test10;
/**
 * 练习:
 * 愤怒的小鸟,
 * 红火(红颜色的鸟)可以正常飞行 ,
 * 蓝冰(蓝颜色的鸟)可以一个变三个,
 * 黄风(黄颜色的鸟)可以加速飞行,
 * 定义一个弹弓类,
 * 有一个弹射的方法 ,可以把鸟给射出去, 鸟在飞。 */
public class Test {
    public static void main(String[] args) {
         Bird b1 = new RedBird("红火");
         b1.fly();
         Bird b2 = new BlueBird("蓝冰");
         b2.fly();
         Bird b3 = new YellowBird("黄凤");
         b3.fly();

         SlingShot s = new SlingShot();
         s.send(b1);
         s.send(b2);
         s.send(b3);
    }
}
结果是:     红火的技能是:正常飞行     蓝冰的技能是:一个变三个     黄凤的技能是:加速飞行     红火的技能是:正常飞行     蓝冰的技能是:一个变三个     黄凤的技能是:加速飞行
这篇关于Java 抽象类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!