JavaSE基础自学-----抽象类(abstract) 与 接口(interface)

抽象类(abstract)

当多个类出现相同功能,但是功能内容不同,这时可以进行向上抽取,只抽取功能定义,而不抽取功能主体.

抽象类特点
1. 抽象方法一定在抽象类中,
2. 抽象方法和抽象类必须被 abstract 关键字修饰,
3. 抽象类不可以new对象,因为抽象类的抽象方法没有具体执行体.
4. 抽象类一被继承,.子类必须将所有抽象方法重写,如果还有抽象方法没有重写,则子类还是个抽象类,不能够创建对象

  • 特殊:抽象类可以不定义抽象方法,这样做仅仅是不让该类建立对象

代码演示-----

//抽象类,person类不能new对象,
abstract class person {
    abstract public void study();

    //抽象类中可定义正常函数,也可以不定义抽象函数
    public void walking() {
        System.out.println("行走");
    }
}

class students extends person {

    //重写了父类抽象函数
    public void study() {
        System.out.println("学习语数英知识");
    }
}


接口(interface)----提高功能拓展性

接口:可以理解为是一个特殊的抽象类,所以接口不可以new对象,且子类需要重写接口所有抽象方法才可以new对象…当抽象类中的方法都是抽象时.那该类可以通过接口的形式表示

接口思想特点:
1. 接口是对外暴露原则
2. 接口是程序的功能拓展
3. 实现了模块开发,定义好规则,每个人实现自己需要的模块,大大提高了开发效率
4. 接口与实现类之间具有多态性.

接口与接口之间可以被继承(extends),一个接口可以继承多个接口 (接口的多继承) ,一个类可以实现多个接口 (类的多实现)

class用于定义类…interface 用于定义接口
接口常见定义:常量,抽象方法
接口中成员都有固定的修饰符,常量: public static final,方法: public abstract

抽象与接口的区别
------成员变量:

  • 抽象类能有变量,也能有常量…
  • 接口只能有常量

-成员方法

  • 抽象类可以有非抽象方法,也可以有抽象方法
  • 接口只能有抽象方法

构造方法

  • 抽象类有构造方法
  • 接口没有构造方法

代码演示----

/*
* 学生类不能吸烟,
* 工人类可以吸烟,可以开车
* 额外定义"吸烟"接口给需要的类实现就行了*/

abstract class Person {

    abstract public void study();

    //抽象类中可定义正常函数,也可以不定义抽象函数
    public void eatting() {
        System.out.println("吃东西");
    }
}

//定义"吸烟"接口
interface Smoking{
      double PI=3.1415;   //public static final 可省略不写
      void smoke();       //public abstract  可省略不写
}

//定义"开车"接口
interface DriveCar{
    void driveCar();
}

class Students extends Person {

    //重写了父类抽象函数
    public void study() {
        System.out.println("学习语数英知识");
    }
}

class Woker extends Person implements Smoking,DriveCar{//一个类只能继承一个类,但可以实现多个接口
    public void study(){
        System.out.println("学习技能知识");

    }
    public void smoke(){
     System.out.println("吸烟");
    }
    public void driveCar(){
        System.out.println("开车");
    }
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值