面向对象程序设计有三大特征,分别是封装,继承和多态。
这三大特性相辅相成,可以使程序员更容易用编程语言描述现实对象。
多态一般有三种应用:具体类多态,抽象类多态和接口多态(常用)。
其中多态
多态是方法的多态,是通过子类通过对父类的重写,实现不同子类对同一方法有不同的实现,从而达到灵活的编程。
重载和重写的区别:
重载是同一类中,写多个相同的方法名但不同参数的方法,在调用方法时,根据传参类型、数量的不同,执行不同的函数。
重写是有继承关系的不同类中,子类对父类的相同函数重写的过程。
重载
主类:
public class Main {
public static void main() {
Student stu = new Student();
System.out.println(stu.think();
System.out.println(stu.think(12,20);
System.out.println(stu.think("数风流人物,还看今朝"));
}
}
学生类:
// 重载
// 在类中把think方法重载
// 对于学生类的思考,传入不同的参数类型可以运行不同的实现
public class Student() {
public static void think() {
// 学生开始思考
System.out.println("仅仅开始思考...");
}
public static void think(int a,int b){
// 学生计算两数相加
System.out.println("两数相加等于: "a+b);
}
public static void think() {
// 学生朗读文本
System.out.println("开始朗读文本: "+str);
}
}
重写
主类
public class Main {
public static void Main() {
// 多态的条件3(父类的引用指向子类的对象)
Animal a = new Yuji();
Animal b = new Gongsunli();
a.speak();
b.speak();
}
}
ADC类(父类)
public class Animal {
// 射手说话的函数
public void speak() {
System.out.println("射手正在说话...");
}
}
公孙离类(子类)
// 多态的条件1(父子类有继承关系)
public class Gongsunli extends Animal {
// 公孙离类开始说话
// 多态的条件2(子类需要重写父类的某方法)
@Override
public void speak() {
System.out.println("花绽放于长安的春日,温暖又幸福。")
}
}
虞姬类(子类)
public class Yuji {
// 虞姬类开始说话
@Override
public void speak() {
System.out.println("来来,妾当与大王对饮。")
}
}
其中父类引用指向子类对象,能用什么方法看左边,具体用的是什么看右边。
Object a = new Student();
5864

被折叠的 条评论
为什么被折叠?



