抽象类

/*
抽象类:
1.方法只有声明没有实现是,该方法就是抽象方法,需要被abstract修饰.
    抽象方法必须定义在抽象类中.该类也必须用abstract修饰.
2.抽象类不可以被实例化.因为调用抽象方法没有意义.
3.抽象类必须有其子类覆盖了所有的抽象方法之后,该子类才可以实例化,否则这个子类还是抽象类,

抽象类中有构造函数吗?
    有,用于给子类对象进行初始化.

抽象类可以不定义抽象方法吗?
    可以.但是很少见,目的就是不让该类创建对象.AWT的适配器对象就是这种类.通常这个类中的方法有方法体,
但是没内容.
class Demo {
    void show1() ;  //没有方法体
    void show2(){}  //有方法体但是没内容
}

抽象关键字不可以和哪些关键字共存?
private 不可以.因为私有方法不能被覆盖.
static  不可以.静态方法不需要对象就能调用.但是调用抽象方法没有意义.
final   不可以.因为final修饰的类不可以被继承,并且final修饰的方法不可以被覆盖.

抽象类和一般类的区别.
相同点:
    抽象类和一般类都是用来描述事物的.都在内部定义了成员.
不同:
    1.一般类有足够的信息描述事物.
            抽象类描述事物的信息有可能不足.
    2.一般类中不能定义抽象方法,只能定义非抽象方法.
            抽象类中可以定义抽象方法.也可以定义非抽象方法.
    3.一般类可以被实例化.
            抽象类不可以被实例化.

抽象类一定是个父类吗?
    是的.因为需要子类覆盖其方法后才可以对子类实例化.
*/
public class AbstractDemo {

    public static void main(String[] args) {
        DemoA a = new DemoA() ;
        a.show();
        DemoB b = new DemoB() ;
        b.show();
    }

}

abstract class Demo {
    abstract void show() ; // abstract 抽象类关键字,抽象方法一定在抽象类中]
    void show2() {

    }
}

class DemoA extends Demo{
    void show() {
        System.out.println("demoa show");
    }
}

class DemoB extends Demo{
    void show() {
        System.out.println("demob show");
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值