Java day 11

1、接口:比抽象类还抽象的类,用于处理继承单一的局限性

  格式:
      interface  接口名{
      }
  注意:接口里的方法全是抽象方法,接口和类的关系是实现(implements)

2、接口的成员特点:

  (1)只能有抽象方法;
  (2)只能有常量;
  (3)默认使用public&abstract修饰方法;
  (4)只能使用public&abstract修饰方法;
  (5)默认使用public static final来修饰成员变量;
  建议:手动添加默认修饰符
  注意:
  (1)接口不能创建对象(不能实例化);
  (2)类和接口的关系是实现关系,多层实现,一个类实现一个接口必须实现它所有的方法;
  (3)类与类是继承关系,单一继承,多层继承;
  (4)接口与接口的关系是继承关系,多层继承

3、接口的优点:

 (1)一个类可以实现多个接口,打破了继承的局限性;
 (2)对外提供规则(USB接口);
 (3)降低了程序的耦合性(可以实现模块化开发,定义好规则,每个人实现自己的模块,提高了开发的效率)

4、接口和抽象类:

 (1)共性:不断地抽取出抽象的概念;
 (2)区别:
     A、与类的关系:
       a、类和接口的关系是实现关系,而且是多实现,一个类可以实现多个接口;
       b、类与抽象类是继承关系,Java中的继承是单一继承,多层继承
     B、与成员的关系:
       a、成员变量:抽象类可以有成员变量,也可以有常量;接口只能有常量
       b、成员方法:抽象类可以有抽象方法,也可以有非抽象方法;接口只能有抽象方法,而且方法有默认修饰符 public abstract
       c、构造方法:抽象类有构造方法;接口没有构造方法

5、匿名对象:没有名字、没有变量引用的对象

   应用场景:
   (1)当方法只调用一次的时候可以使用匿名对象;
   (2)可以当作参数进行传递,但是无法在传参之前做其他的事情
   注意:匿名对象可以调用成员变量并赋值,但是赋值并没有意义

6、final:修饰符,用于修饰类、成员方法和成员变量

  (1)final所修饰的类:不能被继承,不能有子类;
  (2)final所修饰的方法:不能被重写;
  (3)final所修饰的变量:不可以被修改,是常量(字面值常量:1,2,3;自定义常量:一旦初始化则不可改变)
  注意:自定义常量必须初始化,可以选择显示初始化或者构造初始化

7、多态的前提:

 (1)子父类的继承关系;
 (2)方法的重写;(变量没有重写的概念)
 (3)父类引用指向子类对象
 注意:动态绑定:运行期间调用的方法,是根据其具体的类型

8、多态的成员特点:

 (1)成员变量:编译时看的是左边,运行时看到是左边;
 (2)成员方法:编译时看的是左边,运行时看到是右边;
 (3)静态方法:编译时看的是左边,运行时看到是左边;

9、多态中的向上转型和向下转型:

 引用类型之间的转换:
       a、向上转型:由小到大(子类型转换成父类型)
       b、向下转型:由大到小

10、多态的优缺点:

 (1)优点:可以提高可维护性(多态前提所保证的),提高代码的可扩展性;
 (2)缺点:无法直接访问子类特有的成员
原文地址:https://www.cnblogs.com/cqxljj/p/10254400.html