没有抽象方法的抽象类

1 篇文章 0 订阅
1 篇文章 0 订阅

interface Inter{
void show1();
void show2();
void show3();
void show4();
}

//DemoA,只需要其中一个方法,就要实现接口的所有方法
class DemoA implements Inter{
public void show1(){
System.out.println(“Demoa show1”);
}
public void show2(){}
public void show3(){}
public void show4(){}
}

//如果再来个DemoB,只用其中一个方法,还要实现接口的所有方法
class DemoB implements Inter{
public void show3(){
System.out.println(“Demoa show3”);
}
public void show2(){}
public void show1(){}
public void show4(){}
}

class InterfaceDemo4{
public static void main(String[] args){
DemoA a = new DemoA();//要实例化必须实现接口里的全部方法
a.show1();
a.show3();
}
}

//问题:只需要部分功能,但是为了实例化,必须要全部覆盖。
代码的复用性很差。该如何解决呢?

abstract class Demo implements Inter{
//这就是传说中的没有抽象方法的抽象类,方便创建接口的对象

private Demo(){} //切记不能写私有,构造函数是给子类初始化的,
私有了,就不能被继承了
void show1(){}
void show2(){}
void show3(){}
void show4(){}
} //空实现
//可以用一个类先把接口中的所有方法都是空实现。
该类创建对象没有意义。所有可以将该类定义为抽象类

class DemoA extends Demo{
void show1(){
System.out.println(“Demoa show1”);
}

class DemoB extends Demo{
void show3(){
System.out.println(“Demoa show3”);
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值