Java随笔三 面向对象

继承的使用限制

1 Java只能单一继承,但是可以实现多个接口和多层继承

2 子类对象在构造之前一定会先调用父类的构造,确保父类实例化

3 子类在继承父类时,理论上会继承父类的全部操作,但是私用属性不能通过子类直接调用


override

定义:当子类定义了和父类一样的方法(方法名字,返回类型,参数个数,参数类型均一样)就称为方法的ovrerride

限制:

父类的private方法不能被ovrerride

子类ovrerride的方法,不能比父类的方法有更严格的访问权限 public  protected private 

对于父类的某一方法在子类中用相应override方法,如何在子类中调用父类的该方法?

super.方法名(参数列表)


                      overloading                                     和                         override 的区别:

作用范围:    一个类里里面                                                    继承关系中

定义:一个类里面方法名相同,参数个数或参数类型不同     方法完全一摸一样

权限       无                                    子类方法不能比父类方法更严格

final

1 final定义类 final所定义的类不能被继承

2 final定义方法,final所定义的方法不能被重写

3 final定义属性,final所定义的属性不能被改变

多态

1 override and overloading

2 父子类对象的转换

父类 父类对象 = 子类实例  (向上转换  自动进行)

子类 子类对象 =  (子类) 父类对象 (向下转型  强制进行) 必须发生向上转型后才可以发生向下转型


由于父类对象向子类对象转型的特殊性:instanceof

利用此关键字可以判断某一个对象是否是制定类的实例

运用实例:对象 instanceof 类 返回boolean类型


抽象类

一种明确定义子类需要腹泻方法,且自身不能实例化的类。更严格的要求能长生更规范的代码风格

抽象类的限制:

1 必须有子类,

2 子类必须实现抽象类的抽象方法

3 依靠向上转型,可以完成抽象类对象的实例化

4 局限于单继承,且不能使用final

接口

接口的产生打破了java类单一继承的局限,一个类只能有一个父类,但是可以实现多个接口,接口可以理解为一种特殊的类:

在jdk1.8之前,接口只能包含全局常量和抽象方法。用interface标志接口

接口的限制

1 接口必须要有子类

2 接口的子类必须实现接口的全部抽象方法

3 依靠向上转型,可以完成接口的实例化


看到这里是不时发先接口和抽象类很相似?

Java随笔三 面向对象


Object类:

Object类是所有类的父类,也就是说Object可以接受所有类的对象(依靠子类向上转型),但是Java开发中Object实际上可以接受所有引用对象:数组,类,接口

Object类重要方法toString()

如果直接打印一个对象,则就是该对象的toString()方法。所以有必要的时候可以重写toString()方法

基本数据类型和其包装类

java设计:一切皆对象。

但是基本数据类型不是对象,为了解决矛盾,将基本数据类型进行了一次封装

byte(Byte) short(Short) int(Integer) long(Long) double(Double) float(Float) char(Character) boolean(Boolean)

基本数据类型和其包装类可以自动完成装箱和拆箱操作

例:Integer integer = 10 ;  //自动装箱

      int obj = integer ;      //自动拆箱

基本数据类型包装类的开发运用

完成和String数据类型的转换

String类型转为基本数据类型

例 :String str = "12306" ;

Int obj = Integer.parseInt(str)  ;

注:如果这里str字符串包含的不全是数字,则会出现NumberFormatException

基本数据类型变为String类型数据

例:int obj = 100 ;

      String str = String.valueOf(obj) ;