抽象类和接口


抽象方法:
abstract:抽象的。可以修饰方法和类。
抽象:模糊、不具体。

抽象方法
    1.使用关键字abstract修饰。
    2.抽象方法不可以有方法体。
    3.抽象方法必须在抽象类中。
修饰符 abstract void 方法名();

抽象类:
修饰符 abstract class 类名{

}
    1.抽象类中可以有属性。
    2.抽象类中可以有普通方法。
    3.抽象类中可以有抽象方法。
      也可以没有。
    4.子类继承抽象类:
       1>子类必须重写抽象父类的所有抽象方法。
       2>或者子类也为抽象类。
    5.抽象类无法创建对象new自己。
      不是因为抽象类没有构造方法,而是因为
      一个抽象的模板 没有资格实例化。
      创建对象必须使用多态的方式:
      父类类型 对象 = new 子类类型();
      **子类不能为抽象类。
    6.抽象类可以继承抽象类,也可以继承普通类。
      也是单根继承。

 抽象类的存在,要求子类必须存在。否则无法创建该类型
 对象,没有意义。
 abstract:抽象的
    abstract不可以和private、final、static连用。

 final:最终的 最后的。关键字,访问修饰符。
    final可以修饰类、方法、变量。
    1.修饰的类无法被继承。
    2.被final修饰的方法不可以被重写(覆盖)。
    3.final修饰的变量为常量,不可以被更改。必须初始化。
       1>在局部变量中,所有变量本来也需要初始化。
       2>成员变量也需要初始化:
        -->直接赋值初始化。
        -->在构造方法中初始化成员变量。
    public static final int NUMBER = 80;-->全局常量
    常量的命名规则:
        所有字母都大写,若由多个单词组成使用下划线隔开。


接口:
使用interface声明,也是.java文件中编译也是.class文件
语法:
public interface 接口名{

}    
    1.属性默认被public、static、final修饰。为全局常量。
    2.方法默认被public、abstract修饰。
      全都是抽象方法。
    3.接口中没有构造方法。
    4.类不可以继承接口,需要实现接口。
      使用implements实现接口。
      实现接口的类叫做实现类,并且可以实现多个接口。
      1>实现类实现接口需要重写接口中的所有方法。
      2>或者实现类为抽象类。
    5.接口不可以实例化。
      使用多态的方法创建对象。
      接口名 对象 = new 实现类();
      ***实现类不可以为抽象类。
    6.
       1>接口不可以继承类。
       2>接口可以继承接口,而且可以继承多个接口。
         多个父接口之间用,连接。
       3>实现类实现接口,需要实现类重写接口和
         接口父接口中的所有方法。
    7.一个类可以继承一个类的同时实现多个接口。
      需要重写所有的抽象方法。
      !!:
      先继承后实现。
    class A extends B implements IA,IB..{

    }

接口和抽象类中的异同:
    相同点:
        1.都可以有抽象方法。
        2.都无法实例化,需要子类(实现类)的存在。
          父类<接口> 对象名 = new 子类<实现类>();
        3.需要子类 或者实现类的存在,否则没有意义。
    不同点:
        1.抽象类中的属性和普通类一样。
          接口中的属性默认被public static final修饰为全局常量。
        2.抽象类中可以有普通方法,可以有抽象方法。
          接口中的所有方法默认被public abstract修饰为 抽象方法。
        3.抽象类的构造方法和普通类一样。
          接口中没有构造方法。
        4.接口声明 用interface
          抽象类 abstract class
        5.子类继承抽象类使用extends
          实现类实现接口使用 implements
          并且可以实现多个接口。
        6.抽象类可以继承类,单根继承。
          接口不可以继承类,可以继承接口,可以继承多个接口。
        7.继承通常满足 is-a的关系,
          接口不一定有。

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值