面向对象(下)

类的继承

  父类的方法子类继承;

  重写(override / overwrite):

    1,必须要有继承;

    2,方法名相同;

    3,参数列表、参数类型、参数个数一致

    4,返回值类型相同

    5,子类重写父类方法不能使用比父类更为严格的访问权限;

  重载(overlord)同一个类:

  • 被重载的方法必须改变参数列表(参数个数或类型不一样);
  • 被重载的方法可以改变返回类型;
  • 被重载的方法可以改变访问修饰符;
  • 被重载的方法可以声明新的或更广的检查异常;
  • 方法能够在同一个类中或者在一个子类中被重载。
  • 无法以返回值类型作为重载函数的区分标准。

Object: 所有类的父类;

 

toString:

  将对象转换成字符串的方法;

equals方法重写注意的问题:

  • 自反性:对于任何非空引用值 xx.equals(x) 都应返回 true
  • 对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true
  • 传递性:对于任何非空引用值 xy 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true
  • 一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。
  • 对于任何非空引用值 xx.equals(null) 都应返回 false

final关键字:常量;

  在final关键字修饰的变量全部大写;

  修饰变量,让变量只能赋值一次(不可更改);

  

  修饰方法:被final 关键字修饰的方法,不能被重写;

  修饰类:被final修饰的类不能被继承;

 

多态:

  父类的引用指向子类的对象;

  在同一个方法中,参数的 类型相同但是由于运行的环境不同而表现出来的不同形式;

对象转型:

  向上转型:隐式;

  向下转型:显式(需手动强转);

  父类无法转换子类;

  父类的对象可以转成子类的对象

  父类的变量指向子类的对象(可以强转);

  父类的对象,不能访问子类中特有的成员(成员变量,成员方法);

instanceof关键字:

  用来判断某个变量将是否是一种类型;

  变量 instanceof  类型 返回boolean值;

抽象类:

  1,在一个类 中某一个方法不需要实现,完全交个子类实现,这个方法需要被声明为抽象方法;

  2,含有抽象方法的类必须声明为抽象类;

  3,抽象类可以没有抽象方法;

  4,抽象类无法被实例化;

  定义方法后,修改方法只需修改指向的对象,

  便于后期维护

  抽象类的子类无法实现父类的抽象方法时,自己也变成抽象类由它的子类实现;

接口:

  接口是一种特殊的抽象类;

  接口只定义方法;

抽象类与接口的区别:

  抽象类是继承来的,继承只能单继承;

  接口是实现来的,接口可以多实现 ;

  接口的范围类型可以不写 , 默认为public;

  接口中可以定义成元变量(全局,整个实现类都可以访问);

  实现类实现继承了父类的 接口的时候,需要实现所有接口的方法;

  接口可以多继承(类不行)

  如果抽象类实现接口,可以只实现部分方法,普通类需要全部实现;

package关键字可以解决类名重名的现象;

import关键字

  如果两个class文件不在一个包下面需要import;

权限修饰符:

   public(共开的)

     权限最大

     所有类都能访问的到

   private(私有的)

    只有本类中才能访问的到

   protected()

    只有子类能访问的到

   ()

    只能在同一包下面访问的到

 

posted @ 2018-08-23 18:44  k丶灵  阅读(113)  评论(0编辑  收藏  举报