1.类的继承:指一个类可以从另一个类得到该类的一些属性和方法,把两个类的这种关系叫做继承
如:小乌龟出生时就继承了乌龟爸爸的一些属性 和行为
代码:
public class Wugui{//定义一个类
private String name;//定义类的一个name属性
private int age;//定义类的一个age属性
public void setName(String n){//定义设置属性name的方法
name=n;}
public String getName(){//定义得到属性name的方法
return name;}
public void setAge(int m){//定义设置属性age的方法
age=m;}
public int getAge(){//定义得到属性age的方法
return age;}
public void xad(){定义一个无参无返回值的方法xad()
System.out.println(name+"在下蛋,年龄是:"+age);}
}
public class Xwugui extends Wugui{//定义一个子类Xwugui继承自类Wugui
}
2.方法的重写:指子类可以编写一个与父类方法名、返回值数据类型、参数个数、参数类型、参数顺序相同的方法去覆盖父类的方法
代码:public class Wugui{//定义一个类,类名是Wugui
private String name;//定义属性name
private int age;//定义属性age
public void setName(String n){//定义设置属性name的方法
name=n;}
public String getName(){//定义得到属性name的方法
return name;}
public void setAge(int m){//定义设置属性age的方法
age=m;}
public int getAge(){//定义得到属性age的方法
return age;}
public void xad(){
System.out.println(name+"在下蛋,年龄是:"+age);}
}
public class Xwugui extends Wugui{//定义一个子类Xwugui继承自类Wugui
public void xad(){//定义一个重写父类的xad()方法
System.out.println("小乌龟不想下蛋");}
}
3.自动转型:指子类对象会自动转变为父类类型
代码:public class Wugui{//定义一个类
private String name;//定义类的一个name属性
private int age;//定义类的一个age属性
public void setName(String n){//定义设置属性name的方法
name=n;}
public String getName(){//定义得到属性name的方法
return name;}
public void setAge(int m){//定义设置属性age的方法
age=m;}
public int getAge(){//定义得到属性age的方法
return age;}
public static void main(String args[]){//程序入口
Wugui w=new Xwugui();//自动转型为父类
w.setName("我是小乌龟");//设置对象w的属性name的值
w.xad();调用对象w的xad()方法
}
4.多态:指相同类型的对象调用相同的方法的时候,由于继承和重写,得到的结果不一定相同
代码:
public class Xwugui extends Wugui{//定义一个子类Xwugui继承自类Wugui
public xad(){
System.out.println("下蛋的乌龟,名字是:"+getName());}
}
public class Lwugui{定义一个类Lwugui
public void punWg(Wugui w1,Wugui w2){定义一个方法,方法的参数是嘞Wugui的两个对象w1,w2
w1.xad();//调用Wugui类对象w1的xad()方法
w2.xad();//调用w2的xad()方法}
}
public static void main (String args[]){//程序入口
Wugui w1=new Xwugui();//实例化一个Wugui的对象,对象名是w1
w1.setName("我是小乌龟");//设置w1的属性name的值
Wugui w2=new Xwugui();//实例化一个Wugui的对象,对象名是w2
w2.setName("白乌龟");//设置w1的属性name的值
Lwugui lw=new Lwugui();实例化一个Lwugui类的对象,对象名是lw
lw.punWg(w1,w2);//调用对象lw里的punWg()方法}