继承:
关键字(extends).
class 子类 extends 父类{}
子类继承父类的非private属性和方法
方法重写:
子类若想要从父类中继承的方法实现和父类不同的程序,则可以在子类中重写该方法
如 public class Father{
protect String name;
public void setName(String name){
this.name=name;
}
}
public class Son extends Father{
public void setName(String name){
this.name="The name of son is:"+name;
}
}
可以看出,方法重写是将父类中的方法以相同的返回类型、方法名、参数的形式改写。而且该方法的访问权限只能扩大不能缩小。
*方法重载的区别:方法重载,是将同一个方法名的方法,参数类型改变或者个数改变或者类型和个数都改变。以实现对象调用该(相同方法名的)方法时,自动选择要执行的程序。
如:public class Father{
String name;
public void setName(){
name="张三";
}
public void setName(String name){
this.name=name
}
public static void main(String[] s){
Father fa=new Father();
fa.setName();
println("Name is :"+name);
fa.setName("李四");
println("Name is :"+name);
}
}
输出:Name is :张三
Name is :李四
自动转型:
将父类的对象以子类的构造器构造;如:
Father fa=new Son();此时,该对象只能调用在父类中存在或者在子类中重写的方法。调用时,若该方法在子类中被重写,则调用子类中重写的方法。
多态:
同一类型的多个对象调用同一个名称的函数时,实现的内容以及结果可能是不同的。一种输入,多种可能结果。通过参数来决定来执行哪一个方法。
继承导致了方法重写和自动转型的出现。而方法重载、方法重写、自动转型导致了多态的产生。