1.抽象类
a.什么是抽象类
用可选修饰符abstract修饰的类
特点:
1.抽象类不能产生对象(原因:对象是具体的,实际的存在,不应该有不确定的东西)
2.抽象类存在的意义就在于产生子类
3.抽象类里面可以定义:属性/构造/方法/初始化块/内部类,总之一个类该有的它都可以有
4.语法上允许一个抽象类里面没有抽象方法,但这样做失去了设计的意义。
5.子类继承抽象类,必须实现抽象类中的所有抽象方法,除非这个子类自己也是抽象类。
6.abstract只能写在方法和类之中
b.为什么要写抽象类
当一个方法我们只能确定它的声明而无法确定它的实现,那么该方法就要设计为抽象方法
c.语法
在语法声明的部分加上一个可选修饰符abstract,然后该方法不能有方法的实现部分。
连{ }也不能有!用 ; 直接结束。
有抽象方法的类就叫做抽象类,必须在类的修饰符前加上abstract。
2.接口
为什么要用接口
让没有继承关系的类也能共享行为
接口是干什么的
解决单继承丰富度不足的问题
语法
定义接口(命名规则:动词 + able)
一个类去实现接口,一个接口继承接口
关键字:interface——这说明接口是一种独立的数据类型
接口在语法上访问修饰符只能是public或默认
属性——只能是公共、静态、常量属性 public static final a = 100;
就算不写也是public、static、final的
构造——接口不能有构造方法
方法——接口里定义的方法只能是公共、抽象的方法
就算不写也是public、abstract的
(在jdk1.8中接口有了新功能 ,可以书写实现了的方法,但要使用default关键词)
初始化块——接口不能有初始化块
实现接口
关键字:implements
1.实现接口的类必须实现接口的所有抽象方法,除非这个类是抽象类
2.一个类可以实现多个接口,在implements关键字后面书写多个接口的名字 中间用 , 分隔
3.类在实现接口的同时,可以做继承
继承接口
使用关键字extend
1.子接口继承父接口以后,自动拥有了父接口的抽象方法
2.接口继承接口允许多继承 中间用 , 分隔
设计场景
特点
独立的数据类型,自成语法
接口关注的是行为的共享
公共接口的名字,必须和他所在的Jaca文件名保持一致
接口的引用可以指向实现类的对象
设计
把与生俱来的方法写在父类抽象中,附属添加的就放在接口
开闭原则,单一职责,最小接口原则:尽量设计小接口,可以自由组合,任意拆分
a.什么是抽象类
用可选修饰符abstract修饰的类
特点:
1.抽象类不能产生对象(原因:对象是具体的,实际的存在,不应该有不确定的东西)
2.抽象类存在的意义就在于产生子类
3.抽象类里面可以定义:属性/构造/方法/初始化块/内部类,总之一个类该有的它都可以有
4.语法上允许一个抽象类里面没有抽象方法,但这样做失去了设计的意义。
5.子类继承抽象类,必须实现抽象类中的所有抽象方法,除非这个子类自己也是抽象类。
6.abstract只能写在方法和类之中
b.为什么要写抽象类
当一个方法我们只能确定它的声明而无法确定它的实现,那么该方法就要设计为抽象方法
c.语法
在语法声明的部分加上一个可选修饰符abstract,然后该方法不能有方法的实现部分。
连{ }也不能有!用 ; 直接结束。
有抽象方法的类就叫做抽象类,必须在类的修饰符前加上abstract。
2.接口
为什么要用接口
让没有继承关系的类也能共享行为
接口是干什么的
解决单继承丰富度不足的问题
语法
定义接口(命名规则:动词 + able)
一个类去实现接口,一个接口继承接口
关键字:interface——这说明接口是一种独立的数据类型
接口在语法上访问修饰符只能是public或默认
属性——只能是公共、静态、常量属性 public static final a = 100;
就算不写也是public、static、final的
构造——接口不能有构造方法
方法——接口里定义的方法只能是公共、抽象的方法
就算不写也是public、abstract的
(在jdk1.8中接口有了新功能 ,可以书写实现了的方法,但要使用default关键词)
初始化块——接口不能有初始化块
实现接口
关键字:implements
1.实现接口的类必须实现接口的所有抽象方法,除非这个类是抽象类
2.一个类可以实现多个接口,在implements关键字后面书写多个接口的名字 中间用 , 分隔
3.类在实现接口的同时,可以做继承
继承接口
使用关键字extend
1.子接口继承父接口以后,自动拥有了父接口的抽象方法
2.接口继承接口允许多继承 中间用 , 分隔
设计场景
特点
独立的数据类型,自成语法
接口关注的是行为的共享
公共接口的名字,必须和他所在的Jaca文件名保持一致
接口的引用可以指向实现类的对象
设计
把与生俱来的方法写在父类抽象中,附属添加的就放在接口
开闭原则,单一职责,最小接口原则:尽量设计小接口,可以自由组合,任意拆分