继承,重写,多态的理解 继承重写多态
继承:将父类的方法复制给子类,减少重复代码.
父类是许多子类的共同点,比如 大学生,中学生,小学生都是学生.学生类是其余三个类的共同特点.( 类:具有相同的属性,即有共同特点.属性就是他们的共同点,这是主观上面的共同点)
声明格式
public class Student
public class CollegeStudent extends Student
方法的重写:
子类继承了父类的某一个方法,但是需要改进,可进行重写,其方法名,参数都相同
Student.java
public void read(){
System.out.println("姓名"+name+"\t性别:"+sex+"\t学号"+num);
}
CollegeStudent.java(继承了student.java)
public void read(){
System.out.println("姓名:"+name+"\t学号"+num);
}
此时,CollegeStudent类的对象调用read方法是调用的后面一个read();
多态:同一个对象调用统一方法可能出现不同的结果
Student stu2=new CollegeStudent(); //(自动转换)
stu2.exam(); //此时Student和CollegeStudent类都有exam方法,则会调用CollegeStudent类的exam(); 这种行为称为多态
CollegeStudent stu4=new CollegeStudent(); //(将stu2强制转换为CollegeStudent)
stu4= (CollegeStudent)stu2;
示例程序
Student.java
public class Student {
int num;
String name;
String sex;
public Student (){
//System.out.println("Student");
}
//构造方法重写:提供多种定义对象的方法,比如直接创建新的对象顺便给出名字学号.
public Student(String nam,int n){
name=nam;
num=n;
}
//定义属性:共同的特征
public void setSex(String se){
sex=se;
}
public void setName(String se){
name=se;
}
public void setNum(int se){
num=se;
}
//定义方法:对象要做的事情
public void read(){
System.out.println("姓名"+name+"\t性别:"+sex+"\t学号"+num);
}
public void exam(){
System.out.println(name+"要考试//Student");
}
}
CollegeStudent.java
public class CollegeStudent extends Student{
public CollegeStudent(){
//System.out.println("CollegeStudent");
}
//方法的重写,方法名,参数都相同
public void read(){
System.out.println("姓名:"+name+"\t性别:"+sex+"\t学号"+num);
}
public void exam(){
System.out.println(name+"要考试");
}
}
Manager.java
public class Manager {
public static void main(String[] args) {
Student stu1=new Student("黄斌",13);
stu1.setSex("男");
stu1.read();
stu1.exam();
CollegeStudent stu=new CollegeStudent();
stu.setSex("女");
stu.setName("齐川逸");
stu.setNum(11);
stu.read();
stu.exam();
Student stu2=new CollegeStudent();
stu2.setSex("女");
stu2.setName("齐川");
stu2.setNum(11);
stu2.read();
stu2.exam();//调用的是CollegeStudent类的exam方法(多态),
CollegeStudent stu4=new CollegeStudent();
stu4=(CollegeStudent)stu2;
stu4.read();
stu4.exam();
}
}
运行结果
姓名黄斌 性别:男 学号13
黄斌要考试//Student
姓名:齐川逸 性别:女 学号11
齐川逸要考试
姓名:齐川 性别:女 学号11
齐川要考试
姓名:齐川 性别:女 学号11
齐川要考试
上一篇: Java入门总结-----类的继承和接口
下一篇: C#的virtual方法小结