JAVA基础之抽象和接口

一、抽象方法

  • 形式

    一定在抽象方法中

    只有声明,而没有具体的实现。抽象方法的声明格式为:

    abstract void fun();//子类必须重写这个方法
    

二、抽象类

  • 普遍类为什么需要变成抽象类?

      1. 该类中的方法必须被定义
      2. 该类中的方法在子类中一定是多态形式(即一定会被重写)
    
  • 定义

    具有0到多个抽象方法的类

  • 作用

    使用抽象类,限制实例化

    public abstract class Animal{//Animal类无法被直接实例化,但是可以通过向上转型来指向他的子类实例 
        //这里面定义的方法在其子类一定要进行重写!
    }
    
  • 目的

    1. 避免子类设计的随意性(由父类限制了子类应该有的方法,但是具体过程由子类实现)
    2. 避免父类无意义的实例化(因为我们通常使用具体的方法时就只需要实例子类就可以了)
  • 注意事项

    1. abstract不能与static final private等连用

三、接口(Interface)

  • 定义

    接口在JAVA编程语言中是一个抽象类型(Abstract Type),它被用来要求类(Class)必须实现指定的方法,使不同类的对象可以利用他们共有的一部分属性(方法)进行沟通。接口通常以interface来宣告,它仅能包含方法签名(Method Signature)以及常数宣告(变量宣告包含了 static 及 final,一个接口仅仅包含方法声明(除默认方法和静态方法),不会有方法的实现

    public interface Predator {
           boolean chasePrey(Prey p);
           void eatPrey(Prey p);
        	 int temp;//这里前面自动包含public static final(公共并且共有,不允许被修改)的信息
        
        //下面是默认方法和静态方法,都可以带方法体(JDK8以上支持)
        	default void connection(){//通过对象名直接调用
            System.out.println("我是接口中默认方法");
          }
           static void test(){//通过接口名调用
            System.out.println("我是接口中静态方法");
       	 }
    }
    
  • 接口文件命名规则

    I+具体的功能;

  • 特点:

    1. 接口内的所有方法都是抽象方法,因此前面不需要加Abstract
    2. 由于接口代表着一个对外行为的集合,所以接口内任何方法都是公开的(public),同样不需要刻意加上
    3. 接口无法被实例化,只能被类实现,并且实现接口的类中必须实现其所有方法(即在实现接口的类中必须重写接口中的所有方法),否则就必须宣告为抽象类
    4. JAVA的一个类中可以实现多个接口
    5. 接口也有继承关系,并且可以继承多个父类(与普通类不同)
  • 实现

    public class Lion implements Predator {
            public boolean chasePrey(Prey p) {
                     // 添加具体的实现方法
            }
    
            public void eatPrey (Prey p) {
                   // 添加具体的实现方法
            }
           //上面的默认方法和静态方法不需要重写
    }
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值