欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

继承,重写,多态的理解 继承重写多态 

程序员文章站 2022-05-20 12:20:43
...

继承:将父类的方法复制给子类,减少重复代码.

 

父类是许多子类的共同点,比如 大学生,中学生,小学生都是学生.学生类是其余三个类的共同特点.( 类:具有相同的属性,即有共同特点.属性就是他们的共同点,这是主观上面的共同点)

 

声明格式

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

齐川要考试

 

  • 继承,重写,多态的理解
            
    
    
        继承重写多态 
  • 大小: 38.6 KB
  • 继承,重写,多态的理解
            
    
    
        继承重写多态 
  • 大小: 8.4 KB