class Cs extends Ct{
void hongshao(int a) {
System.out.println("这是厨师徒弟的红烧int的方法");
}
void hongshao(float b) {
System.out.println("这是厨师徒弟红烧float的方法");
}
void hongshao(int a,float b) {
System.out.println("这是厨师徒弟红烧int和float的方法");
}
}
1385Java Override/Overload
父类变量指向子类实例时可以使用强制类型转换访问父类没有的子类成员。
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
People a=new People();
People b=new Up(6);
a.bark();
b.bark();
System.out.println(((Up)b).level); // 强制类型转换
}
}
class People{
public void bark(){
System.out.println("Hello!");
}
}
class Up extends People{
public int level;
public Up(int lv){
level=lv;
}
public void bark(){
System.out.println("鸽了鸽了,不播了");
}
}
实例输出结果为:
Hello!
鸽了鸽了,不播了
6
1384Java Override/Overload
自定义的类重载比较函数的方法:
public class Match implements Comparable{
public int compareTo(Object o) {
Match tgt = (Match)o;
return ( this.len < tgt.len ? -1 : ( this.len == tgt.len ? 0 : 1));
}
}
1383Java Override/Overload
关于重载函数参数列表变化的可能性:
/**
* @author tangjia
* @date 2017年10月29日 下午4:29:06
* @version 1.0
* @since jdk 1.8.0_65
* 类说明:测试重载函数
*/
public class Main {
public static void main(String[] args) {
int age = 10;
String name = "ii";
handle(age);
handle(name);
handle(name,age);
handle(age,name);
}
public static void handle(int age) {
System.out.println(age);
}
public static void handle(String name) {
System.out.println(name);
}
public static void handle(int age,String name) {
System.out.println("the age of "+name+" is "+age);
}
public static void handle(String name, int age) {
System.out.println("the age of "+name+" is "+age);
}
}
1386Java Override/Overload
重写和重载的区别,以红烧为例。
红烧是一种做菜方法,可用来被比作 java 的方法。食材可以被比作为参数。厨师师徒可被比作为父子类。
方法的继承可以看做红烧这个做菜方法厨师老师传给厨师徒弟。
同样的红烧鱼,厨师老师的红烧方法传给厨师徒弟后,厨师徒弟在红烧方法上做了改动,这是红烧方法的重写,就相当于 java 的方法重写。
重写代码类似如下:
我找厨师徒弟做菜,我说要红烧,我给他鱼他就做的是红烧鱼,我给他排骨他就做的是红烧排骨,我给他鱼和排骨他就做的是红烧鱼和排骨。食材的不同就相当于 java 方法的参数不同,这个是重载。
重载代码类似如下:
1385Java Override/Overload
父类变量指向子类实例时可以使用强制类型转换访问父类没有的子类成员。
实例输出结果为:
1384Java Override/Overload
自定义的类重载比较函数的方法:
1383Java Override/Overload
关于重载函数参数列表变化的可能性:
1382Java Override/Overload
重载与重写的简明理解: