-
方法重载
-
初始化块
-
封装类型
多态的实现策略之一--------方法重载(Overload)
方法的重载(overload)是多态的一种实现策略,方法的重载表现为在一个类中包含多个同名的方法,但是每个方法必须保证方法中的参数列表(类型,个数,顺序)任意一项不一致,方法重载与返回值无关。
public class PrintDemo {
public void write(int i){
System.out.println(i);
}
public void write(float f){
System.out.println(f);
}
public void write(String s){
System.out.println(s);
}
public static void main(String[] args){
PrintDemo pd = new PrintDemo();
pd.write(100);
pd.write(3.14F);
pd.write("helloworld");
}
}
方法重写(Override)和重载(Overload)区别:
-
方法重写发生在存在继承关系的子类中,由子类重写父类的方法;方法的重载一般发生在同一个类中
-
方法重写必须保证方法的返回值类型与父类一致;方法的重载与返回值无关
-
方法重写时必须保证方法中的参数列表与父类一致;方法重载必须保证每个方法的参数列表不一致
-
共同点:不论方法重写还是重载,都必须保证方法名一致
游离块(初始化块)
在一个java类中如果存在多个构造器,每个构造器中都有重复代码时,可以将重复的初始代码归纳到一个游离块中,统一执行,从而解决构造器中代码重复的问题,游离块一般在构造器执行之前先执行,在构造对象时隐式调用,本质上就是一个方法的执行体
public class Config {
public Config(){
System.out.println("默认构造器的操作");
}
public Config(String key,String value){
System.out.println("设置单个键值对");
}
public Config(Properties props){
System.out.println("设置一组信息");
}
//初始化块(游离块)
{
System.out.println("初始化。。。");
}
public static void main(String[] args) {
new Config("version","1.8");
}
}
基本数据类型封装类
在java中每一个基本数据类型都有一个与之对应的引用类型,基本类型数据一般用于算数运算,布尔逻辑,关系等运算,但是无法进行对象操作(方法调用,属性调用);但是,通过封装类型可以实现基本类型的对象操作,比如进行字符串与基本类型数据之间的转换,进制转换。
byte(Byte)
short(Short)
int(Integer)
long(Long)
float(Float)
double(Double)
char(Character)
boolean(Boolean)
-
自动装箱(将一个基本类型的数据自动打包成封装类型)
-
自动拆箱(将一个引用类型的对象解析为一个基本类型数据)
//自动装箱
Integer i = 10;
//自动拆箱
int j = i;
对基本类型数据的封装类型使用常见于字符串与该基本类型数据之间的转换
//将字符串转换为int类型
int i = Integer.parseInt("123");
int i2 = new Integer("123");
//将基本类型的数据转换为字符串类型
Integer j = i;
String s = j.toString();
String s2 = 123 + "";