多态 抽象类 接口
来源:互联网 发布:双十一淘宝购物技巧 编辑:程序博客网 时间:2024/05/20 00:15
多态
多态包括两种 方法的重载和重写 对象的向上和向下转型
一、方法的重载和重写
重载与重写的区别:
方法重载指的是,在同一个类中,允许多个方法名相同,参数列表不同(类型,个数,顺序)即可,与访问控制符、返回值、异常无关。
方法的重写指的是,在继承中如果父类中某个方法不能满足子类的需求,子类可以重写父类中的该方法。重写时,方法名、返回值类型、参数列表都必须和父类中该方法一样,子类中的访问控制符不能比父类更严格。如果父类中的该方法使用private修饰,在子类中就不叫重写(因为子类根本无法访问该方法)。
重载重写对比
位置
方法名
参数列表
返回值
访问控制符
重载
同一类中
一样
不一样
无关
无关
重写
父类和子类
一样
一样
一样
子类不能比父类严格
二、对象的向上和向下转型
1、向上转型之后只能调用父类里的有的方法;
2、向上转型后,如果调用的方法在子类中重写,那么调用的就是重写后的方法;
3、向下转型之前要经历向上转型;
规律:多态时,能调用哪些方法看前面,调用方法的效果看后边(指的是构造方法), 属性的值看前边。
抽象类
用abstract修饰的类是抽象类。抽象方法不能使用private修饰
1、一个类如果有抽象方法,那么这个类一定是抽象类;
2、抽象类中不一定有抽象方法;
3、抽象类可以写构造方法;
4、抽象类不能实例化。
5、抽象方法只需要声明不需要实现
6、抽象类不能创建对象,无法使用new关键字调用抽象方法的构造方法创建对象。即使抽象类中包含构造方法该类也不能创建对象。
7、子类继承抽象类时,必须要重写抽象类中的所有抽象方法(如果子类也是抽象类可以不重写)
接口 ------更彻底的抽象类
接口的特点:
1、接口中所有方法都是抽象方法;
2、接口是单继承,但一个类可以实现多个接口(实现了多继承);
3、接口不能实例化、接口没有构造方法。
4、接口中的方法全部都是抽象方法,常量全部都是静态常量。
5、当一个类实现某个接口时,它必须实现该类中的所有的抽象方法,除非这个类定义为抽象类。
接口的作用:规范代码。接口继承接口用extends,可以多继承。
包装类
一、Java中八大基本类型的基本数据初始值都为0;而包装类的初始值为null.
二、下面是wo包装类常用的转换
1、int 类型转换为字符串
int a=0;
String s=a+""; 0的字符串
2、字符串转成int 类型
String i="10";
int i2=Integer.parseInt(i);
3、字符串转成Boolean
String b="true";
Boolean b1=Bolean.paresBoolean(b);
三、这是我找的一个面试题,可以研究下:
有这个一个九位数,它由123456789组成,每个数字出现仅切出一次,数字的前一位能被1整除,前2位能被2整除......前九位能被9整除,求这个数字。
异常
重点掌握:
try,catch,finally,throws,throw五个关键字
try{
可能发生异常的代码块;
}catch(Exception e){
异常处理代码块;
}finally{
必须执行的代码块;
}
下面是我做的一个案例:
捕获多个异常
注意:使用多重catch语句时,异常子类一定要位于异常父类之前
★throws 处理异常(抛出异常)
★throw 抛出自定义异常
Final、finally、finalize的区别
Final修饰类:类不可被继承
Final修饰变量:变量值不可变
Final修饰方法:方法不可被重写
Finally用于捕获异常 try catch finally语句
Finalize用于处理垃圾回收
多线程
创建多线程
★继承Thread类,重写run方法
◆语法:
class Test extends Thread{//继承Thread类
public void run() {//重写run方法
//方法体
}
}
★实现Runnable接口,实现run方法
◆语法:
class Test implements Runnable{//实现Runnabel接口
public void run() {//实现run方法
//方法体
}
}
创建线程的方法对比:
优点
缺点
继承Thread类
简单
无法再继承其他类
无法实现资源共享
实现Runnable接口
可以继承其他类
可以实现资源共享
复杂
在开发张大多数情况下选择使用实现Runnable接口的方式来创建线程。
集合
list set map ArrayList
set和list都是储存数据,set存放的数据不重复,是无序的;list可以吧存放重复数据,是有序的;map以键值对的形式存放数据。
ArrayList和LinkedList的区别
ArrayList存放的数据是有序的(顺序排放)
linkedList的数据是指向排放的,常用于数据的插入,删除,修改。
这是他们内存的一个分析:
- 多态,抽象类,接口
- 抽象类、接口、多态
- 多态、抽象类、接口
- 抽象类 接口 多态
- 多态、抽象类、接口
- 多态,抽象类,接口
- 抽象类 接口 多态
- 多态,抽象类,接口
- 抽象类 接口 多态
- 多态 抽象类 接口
- 多态,抽象类,接口
- 多态-抽象类-接口
- 多态/接口/抽象类
- 继承、多态、抽象类、接口
- 接口,抽象类,继承,多态
- 5 多态 抽象类 接口
- 继承,抽象类,接口,多态
- 继承、多态、接口、抽象类
- php检测字串是不是回文
- 暗黑的字符串
- 图解排序算法(四)之归并排序
- Vue, App与我(十二)
- PHP 仿陌陌直播
- 多态 抽象类 接口
- 如何利用github绑定自己的域名
- HTTP协议详解(转载)
- 【SoC开发】基于官方微信宠物屋的SoC代码
- 百度地图自动提示,转经纬度,距离计算。
- GIT和SVN之间的五个基本区别
- bzoj 1116(并查集)
- 分布式任务ijobhandle
- Linux基本命令---2