学习第九天

一:
Object类 老祖宗类
是java所有类的父类
java中的所有类都会直接或者间接的继承自Object类
因为java单继承机制,如果一个类有显示的继承其他类,如果没有显示继承,会默认继承自Ojbect类

常用的方法:
1) toString() 把对象以字符串的形式显示
当打印一个对象的引用时候,会先调用对象的toString()方法,打印的是方法的返回值
当打印对象引用时候,默认调用toString()方法,而Object类中的toString()会打印对象的地址,如果想要打印对象的信息(所有成员属性的值),需要在子类中重写toString()方法

二:

java中的面向对象三大特性之一的多态:
多态:一种事物的多种形态|多种表现形式

多态的表现形式:
父类的引用(直接父类|间接父类)指向子类的对象
多态的前提:
类的继承|接口的实现
多态的使用特点:
多态引用调用的时候,会调用子类中重写的方法,如果没有重写,会调用父类的内容
多态调用时,会子类新增内容不可见

多态调用类中成员的特点:
成员变量
编译运行看父类|左边|类型

成员方法
	编译看父类|左边|类型,运行看子类|右边|对象

三:

转型:
孔子装爹:
class 孔子爹{void teach(){讲做生意…}}
class 孔子 extends 孔子爹{void teach(){讲论语…}; void play(){玩王者…}}
class 孔子兄弟 extends 孔子爹{void play(){玩吃鸡…}}
一天有人来找孔子爹授课,但是孔子爹外出,孔子决定化妆,装成他爹的样子去授课
向上转型–>化妆 -->自动类型提升 父类类型>子类类型
孔子爹 k=new 孔子();
去授课,调用teach能力,但是孔子不会做生意,只能讲论语,调用的孔子teach的能力
k.teach();
约定和同学们一起开黑,孔子爹不会打游戏,只能孔子会,孔子需要卸妆,变成自己的样子,然后再去打游戏
向下转型->卸妆–>强制类型转换
小范围类型 引用 = (小范围类型)大范围类型数据;
孔子 kk=(孔子)孔子爹;
kk.play();

父类的引用只能调用父类中有的内容,对子类新增内容不可见
如果使用父类的引用多态形式调用时候,不能够调用子类新增的内容,想要调用,需要向下转型

ClassCastException 类型转换异常:
当向下转型时候,可能会出现类型转换异常,为防止这中异常出现–>介绍一个运行运算符 instanceof

引用 instanceof 类型 
判断前面的引用是否是后面类型的对象|是否是后面类型子类的一个对象,如果是返回true,如果不是返回false

四:

抽象类: 被abstract修饰的类就是抽象类
抽象方法: 被abstract修饰的方法就是抽象方法
没有方法体
必须存在抽象类中

定义开发部门:
java攻城狮
work()
web前端开发攻城狮
work()
子类抽取共性->提出像的地方,定义在父类中
开发 Develop work()

注意:
1.抽象方法必须存在与抽象类中
2.抽象类中可以存在抽象方法,可以存在具体方法(有方法体的方法)
3.抽象类不能实例化(创建对象)
4.抽象方法必须被重写
5.抽象类如何使用:
1.具体子类:重写所有父类中的抽象方法+按需新增
2.抽象子类:按需重写父类中的抽象方法+按需新增
6.抽象方法如果一旦被重写,须后可以按需重写

父类:
具体父类
抽象类

五:

接口:
使用interface定义接口

是一个特殊的抽象类

接口的优点:
接口可以多实现,而类只能单继承
接口定义规范
解耦: 降低耦合度
提高代码的复用性

工作中接口的作用:->功能的集合->抽象方法的集合

父类->子类继承父类->子类继承了父类,就有权使用父类中的内容
父接口->实现类->实现类实现一个接口,就拥有了接口中定义的能力

父类:子类可以继承了父类,就可以直接调用期功能等内容
接口:实现接口,实现两个字,对父类中的抽象方法,功能的集合这些功能,要重写这个方法

接口的定义:
jdk1.7及之前接口中只能存在:
1) 公共的静态的常量 public static final
修饰符可以按需省略,默认public static final

		2)  公共的抽象的方法 public abstract
				修饰符可以按需省略,默认public abstract

特点:
1.接口不能实例化(因为接口中有抽象方法)
2.类去实现接口 使用implements关键字
3.一个类可以实现多个接口,但是只能继承一个父类
4.如果一个类既实现了多个接口,也继承了父类,需要先继承后实现
5.接口和类之间只能类实现接口
6.接口和接口之间,不能实现只能继承,接口可以多继承接口,就拥有了每一接口中的功能

  •  7.接口的使用
    
  •  	具体的实现类使用:重写所有的抽象方法+按需新增
    
  •  	抽象的实现类:按需重写+按需新增
    
  • 注意:以后如果能够使用接口,推荐使用接口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值