20171223:Object的两个方法、多态性、抽象类与接口的学习

一、Object类

1.Object类中的toString()方法是打印引用的地址,如System.out.println(stu);打印的便是stu引用的地址,其实是默认调了stu对象父类Object方法的toString()方法;若在Student类中重写了toString()方法,便会自动调用本类中的toString()方法。

2.equals()方法

Object类中的equals()方法是比较两对象的引用指向的地址是否为统一对象的地址。

二、instanceof关键字

在java中instanceof关键字判断一个对象是否属于一个类的实例,返回值为boolean类型

格式:对象 instanceof

注:这个类不一定非得是对象所属的类,当这个类是当前对象所属类的父类时返回值也为true!

三、多态性(这个是重点)

多态性的体现:

从方法的角度:方法的重载和方法的重写。

从对象的角度:向上转型和向下转型

向上转型和向下转型可以分析一下:

向上转型:子类对象 ->父类对象,格式:父类 父类对象 = 子类实例;

向上转型后,因为操作的是父类对象,所以无法找到在子类中扩展父类的方法,但如果调子类重写父类的方法时,则调用的是重写后的方法;

总结一下:经过向上转型后的父类对象无法调用子类中定义的新方法,调用被重写的方法是调用子类中重写的方法!

向下转型:父类对象 ->子类对象(必须明确写上要转型的子类的类型)

格式:子类 子类对象= (子类)父类对象

注:向下转型前父类对象需经过向上转型,即该父类对象必须为向上转型的父类对象,若该父类对象未经过向上转型,在编译期间不会出错,但在运行期间会出现ClassCastException(类转换异常)!

四、fianl关键字

在java中,声明的类、属性和方法时,可以用final修饰

1.final修饰的类成为最终类,不能被继承

2.final修饰的变量(成员变量和局部变量)则成为了常量,只能被赋值一次,但final修饰的成员变量必须在定义时就进行初始化值;局部变量无此要求,定义时可以不被赋值,但是也是只能被赋值一次。

3.final修饰的方法不能被重写,最终方法当然是不能被修改的。。。

五、抽象类

1. 抽象类不能被实例化,必须被继承;抽象方法必须被它生成的子类重写;抽象类中可以没有抽象方法,有抽象方法的类必须被定义为抽象类;抽象方法无方法体。

2. 若一个子类没有实现抽象父类中的抽象方法,或者只实现了部分方法,则这个子类也得被定义为抽象类,然而如果子类为非抽象类,则该子类要重写父类以及父类以上所有未重写的方法,就像祖祖辈辈都借高利贷,总有一个子孙出来把所有的高利贷都还上

3. 构造方法、静态方法、私有方法、final修饰的方法不能被声明为抽象方法

抽象类可以继承抽象类,可以不重写父类中的抽象方法,非抽象子类必须重写父类中的抽象方法。


六、接口

一、 接口的学习

接口(interface)是抽象方法和常量值的集合,从本质上讲,接口是一种特殊的抽象类,是一种”标准”,这种抽象类中只能包含常量和方法的定义,而没有常量和方法的实现。

1.接口的声明语法:

public interface 接口名称[extends 接口1,接口2,]{

……

}

2.接口体包括常量定义和方法定义;

常量定义:typeNmme = value;该常量被实现该接口的多个类所共享,具有public static final的属性
方法体定义:具有public abstract的属性

3.接口的实现类

3.1与抽象类相同,接口使用时必须通过子类,子类通过implements关键字实现接口

3.2一个类可以实现多个接口,在implements子句中用逗号隔开

3.3非抽象子类必须实现接口中定义的所有方法

3.4接口与接口之间是继承的关系,一个接口可以继承多个父接口,那么一个非抽象子类在实现该接口时,不仅要实现该接口中所有的方法,还要实现该接口继承的所有父接口中的方法




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值