JavaSE基础(5)——抽象类与接口

目录

1、abstract关键字 

2、抽象方法

3、抽象类

4、接口

5、接口与抽象类的区别

6、JDK8版本接口新特性

7、类之间的关系

8、UML类图


1、abstract关键字 

  • 可以修饰方法,不可以修饰属性,对应的类和方法就称之为抽象类和抽象方法;

2、抽象方法

  • 有抽象方法的类一定是抽象类,抽象类中不一定有抽象方法;抽象方法没有方法体

3、抽象类

抽象类是父类对子类进行的约束,普通子类必须重写父类抽象类的抽象方法抽象的子类可以不重写父类的抽象方法;抽象类不能被实例化抽象类中有构造方法

  • 抽象类的特点
  1. 有抽象方法的类被称之为抽象类
  2. 抽象类中可以有抽象方法也可以有普通的方法
  3. 如果子类没有重写父类中的抽象方法,那么子类一定是一个抽象类
  4. 可以作为其他类的父类存在(约束子类)
  5. 利于扩展(设计思想)

4、接口

接口是一个特殊的抽象类;接口中只有抽象方法静态常量;接口使用interface修饰;

子类下的对象如果想实现某种方法,可以让子类实现(implements)接口中的抽象方法;

接口可以继承另一个接口,使用extends关键字;

public interface 接口名{
    //静态属性  --不常用
    [public final static] 数据类型  常量名 = 值;
    int AGE =18;
    //抽象方法
    [public static] void  方法名();
    void fly();
}
  • 练习:接口,飞;类,老鹰;鹰(Eagle)类实现飞(fly)接口
public class Eagle extends Animal implements Fly, Catch{
     @Override
     public void fly() {
         System.out.println("老鹰飞");
     }
     @Override
     public void catchs() {
         System.out.println("抓小鸡");
     }
}

     //定义的接口 表示一种能力
public interface Fly {
     public static final int AGE = 10;
     void fly();
}

5、接口与抽象类的区别

1、接口是一种实现问题的能力,抽象类是一种概念;

2、抽象类具备类中包含的内容,接口中只有抽象方法和静态常量;

3、Java中一个类只能继承继承一个父类,但是可以实现多个接口,一个接口继承多个接口
        类与类----》 继承(extends)
        类与接口---》实现(implements)
        接口与接口--》继承(extends)

6、JDK8版本接口新特性

1.接口中可以写静态方法
        static   返回值类型  方法名() {}
 2.默认的方法(default)
        default  返回值类型 方法名() {}
 3.如果接口中有默认的方法,子类必须重写这个默认的方法。 

7、类之间的关系

  1. 继承 / 实现:子类可以通过继承拥有父类的属性和方法,也可重写实现父类的方法
  2. 依赖:两个类之间的横向关系(临时),通过在方法中当作参数使用
  3. 关联:强依赖
  4. 组合:强聚合,整体和局部的生命周期一样
  5. 聚合:仅强调整体和局部的关系,代表部分的对象可能会被多个代表整体的对象所共享

聚合和组合的区别:聚合是个体离开了整体,依然可以存在
                                组合是个体和整体不可以分开,个体不能离开整体单独存在

几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖;

8、UML类图

  • 继承 / 实现:(空心三角箭头,子类指向父类)

  • 依赖:(虚线箭头,实用类指向被调用类)

  • 关联:(实线箭头,使用类指向被调用类)

  • 组合:(实心菱形——箭头,整体指向部分)

  • 聚合:(空心菱形——箭头,整体指向部分)

  • 26
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值