总结:java抽象类

抽象类

1.抽象方法

没有实际工作的方法, 我们可以把它设计成一个 抽象方法(abstract
method);

2.抽象类

(1)包含抽象方法的类我们称为 抽象类(abstract class);
(2)抽象类存在的最大意义就是为了被继承;
(3)抽象类本身不能被实例化, 要想使用, 只能创建该抽象类的子类. 然后让子类重写抽象类中的抽象方法.

3.代码示例:

abstract class Shape {
abstract public void draw();
}

(1)在 draw 方法前加上 abstract 关键字, 表示这是一个抽象方法. 同时抽象方法没有方法体(没有 { }, 不能执行具体代码).
(2)对于包含抽象方法的类, 必须加上 abstract 关键字表示这是一个抽象类.
(3)抽象类不能直接实例化;
(4)抽象方法不能是 private 的;
(5)抽象类中可以包含其他的非抽象方法, 也可以包含字段. 这个非抽象方法和普通方法的规则都是一样的, 可以被重写,也可以被子类直接调用

4.抽象类的代码示例

/**
0.抽象方法没有实现的方法 abstract
1.抽象类是包含抽象方法的类 abstract
2.抽象类可以包含抽象方法,也可以包含非抽象方法
3.抽象类不可以被实例化 不能new
4.一个普通的类,如果继承了抽象类,一定要重写抽象类的抽象方法
5.抽象类A可以继承抽象类B,这样就不需要重写抽象方法
6.如果一个普通类C继承了上述抽象类A,如果上述抽象类A并没有重写抽象 类B的抽象方法,那么当前的普通类C一定要重写
7.抽象方法一定不能是private;抽象类不能被final所修饰

*/

abstract class Shape1 {
    public abstract void draw();
}
/*abstract class A extends Shape1 {

}

class B extends A {

    @Override
    public void draw() {

    }
}*/

class Cycle1 extends Shape1 {

    @Override
    public void draw() {
        System.out.println("画圆");
    }
}

class Rect1 extends Shape1 {

    @Override
    public void draw() {
        System.out.println("画矩形");
    }
}


public class TestDemo3 {
    public static void drawMap(Shape1 shape1) {
        shape1.draw();
    }

    public static void main(String[] args) {
        Shape1 shape1 = new Cycle1();
        Shape1 shape2 = new Rect1();
        drawMap(shape1);
        drawMap(shape2);
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值