抽象类与接口

来源:互联网 发布:电脑usb端口怎么打开 编辑:程序博客网 时间:2024/06/10 01:01

一、抽象类与抽象方法
1.一般将父类定义为抽象类,需要使用这个父类进行继承与多态的处理。
2.java中定义抽象类时,需要使用abstract关键词,其语法如下:

[权限修饰符] abstract class 类名 {    类体    }

① abstract 修饰类 抽象类
② abstract 修饰方法 抽象方法
3.抽象类注意:
1.成员变量: 可以有变量 也可以有常量
2.成员方法 : 可以有抽象方法 也可以有成员方法
3.构造方法:
注意:抽象类中不一定有抽象方法 但抽象方法一定存在抽象类中
注意:抽象类的子类 必须重写抽象父类的所有抽象方法

4.抽象方法没有实现部分
注意:抽象类中抽象方法 强制子类去重写抽象方法
注意:抽象类 不能实例化对象(创建对象)
创建对象的方式:比照多态来创建
5.使用abstract关键字定义的方法称为抽象的方法。
抽象类除了被继承外没有任何意义。
这里写图片描述
6.abstract与那些关键词不能共存?
① (static【修饰方法 用类名去调用 abstract修饰抽象方法没有方法的实现
没有实现部分的方法,只能是方法的声明 不能直接调用 所有不能共存】)
② (final【修饰方法不能被重写 abstract修饰方法就是为了子类重写方法 所以不能共存)
③ (private【修饰方法 只能本类访问 子类访问不到 谈不上重写方法了 所以不能共存)

二、接口
接口:
1.狭义的接口 interface关键词修饰的叫做接口
2.广义的接口 规则

定义接口
interface 接口名{}

接口特点
1.接口中只能声明抽象方法
2.系统如果你不写 public abstract 关键词修饰 接口中声明方法
那么系统会帮你 默认添加上
建议:最好写上默认的修饰词
3.接口也不能实例化对象(谁要用接口 谁就要去实现接口中的方法)
可以使用多态方式创建实例化实现类的对象
4.接口实现 使用 implementation 关键词

接口注意:
1.成员变量:只能有常量 public static final 常量名 = 初值; 当你在接口中声明变量时 系统默认 会是 public static final修饰

[修饰符]interface 接口名 [extends 父接口名列表]{[public] [static] [final] 常量;[public] [abstract] 方法;

书写建议 最好写上
2.成员方法: 只有抽象方法 没有成员方法
3.构造方法:没有构造方法

  1. 类和类的关系:
    类和类之间 是继承关系 单继承 和多继承

  2. 类和接口的关系:
    类和接口之间 是实现的关系 可以单实现 也可以多实现
    (接口就像干爹 几个都可以)

  3. 接口和接口的关系
    接口和接口之间 可以单继承 也可以 多继承
interface drawTest{    public void draw();}class ParallelogramgieUseInterface implements drawTest{    public void draw() {        System.out.println("平行四边形.draw()");    }}class SquareUserInterface implements drawTest{    @Override    public void draw() {        System.out.println("正方形.draw()");    }}public class QuadrangleUserInterface {    public static void main(String[] args) {        drawTest[] d = {                new SquareUserInterface(),new ParallelogramgieUseInterface()        };        for (int i = 0; i < d.length; i++) {            d[i].draw();        }    }}