:lol:
1.什么是继承呢?
在现实中我需要定义很多的类,而实际中它们有好多是包含关系,或者有相同点,为此我定义一个继承。子类继承父类,继承父类的属性和方法。
例如:定义一个学生类
public class student{
//定义属性
private String name;
//定义方法
public void study(){
System.out.println(name+"在学习");
}
public void setname(Sting name){
this.name=name.
}
}
定义一个大学生类,就用到继承了。因为大学生类一定有学生类的特点。
public class UNStudent extends student{
}
这个大学生类就有了学生类的特点了。当然子类有它自己特有的属性和方法。
2.方法的重写
方法的定义不变,但方法内部实现同父类中不同,新的UNStudent类如下:
public class UNStudent extends student {
public void study(){
System.out.println(name+"要独立学习");
}
}
这里重写了父类中的学习方法了。
3.自动转型和多态的实现
自动转型,是指子类对象会自动父类类型。
public static void main(String[] args){
student st1=new UNStudent();
创建一个学生对象,它由大学生类自动转为学生类类型。如果上面反个来这不行,自动转型
只能由子类到父类。想实现父类到子类,就需要强制转型了。
UNStudent st2=(UNStudent) st1;
在实际中我们会发现,有时相同类型的对象调用相同的方法的时候,由于继承和重写机制
得到的结果不一样。
例如:运行这行代码,你会发现结果很难预测。
st1.study();
st2.study();
}
1.什么是继承呢?
在现实中我需要定义很多的类,而实际中它们有好多是包含关系,或者有相同点,为此我定义一个继承。子类继承父类,继承父类的属性和方法。
例如:定义一个学生类
public class student{
//定义属性
private String name;
//定义方法
public void study(){
System.out.println(name+"在学习");
}
public void setname(Sting name){
this.name=name.
}
}
定义一个大学生类,就用到继承了。因为大学生类一定有学生类的特点。
public class UNStudent extends student{
}
这个大学生类就有了学生类的特点了。当然子类有它自己特有的属性和方法。
2.方法的重写
方法的定义不变,但方法内部实现同父类中不同,新的UNStudent类如下:
public class UNStudent extends student {
public void study(){
System.out.println(name+"要独立学习");
}
}
这里重写了父类中的学习方法了。
3.自动转型和多态的实现
自动转型,是指子类对象会自动父类类型。
public static void main(String[] args){
student st1=new UNStudent();
创建一个学生对象,它由大学生类自动转为学生类类型。如果上面反个来这不行,自动转型
只能由子类到父类。想实现父类到子类,就需要强制转型了。
UNStudent st2=(UNStudent) st1;
在实际中我们会发现,有时相同类型的对象调用相同的方法的时候,由于继承和重写机制
得到的结果不一样。
例如:运行这行代码,你会发现结果很难预测。
st1.study();
st2.study();
}