什么是多态?
多态是指两个或多个属于不同类的对象,对于同一个方法调用作出不同响应的方式。
如何实现多态?
1. 父类 对象名 = new 子类 ();
2. 调用重写方法,即可产生多态。
编译时和运行时:
1. 编译时:在编写代码期间,没有run as时,都属于编译时。
2. 运行时:在run as时,系统处于运行状态时,都属于运行时。
多态的优势:
1. 多态对已存代码具有可替换性。
2. 多态对已存代码具有可扩充性。
3. 多态具有灵活性,提高了使用效率。
4. 多态简化对应用软件的代码编写和修改的过程。
什么是接口?
接口是一种特殊的抽象类,接口里有很多抽象方法。接口关键字:interface.
结构: public interface 接口名{ 抽象方法 }
为什么要使用接口?
接口可以精简程序结构,免除重复定义,提出设计规范。
JAVA只支持单继承,可以实现多个接口。
public interface Flyable {
public void fly();
}
public interface Transform {
public void trans();
}
飞机:
public class Plane implements Flyable,Transform{
@Override
public void trans() {
System.out.println("飞机可以运货。");
}
@Override
public void fly() {
System.out.println("飞机靠气流原理飞行。");
}
}
蚊子:
public class Masquito implements Flyable,Transform{
@Override
public void trans() {
System.out.println("蚊子可以运食物。");
}
@Override
public void fly() {
System.out.println("蚊子靠翅膀飞。");
}
}
public class Question {
//你的性别
public void getSex() {
System.out.println("性别");
}
//你的身高
public void getHeight() {
System.out.println("身高");
}
//你的年龄
public void getAge() {
System.out.println("年龄");
}
}
(Answer1)
public class Answer1 extends Question{
public void getSex() {
super.getSex();
System.out.println("男");
}
@Override
public void getHeight() {
super.getHeight();
System.out.println("1.67");
}
@Override
public void getAge() {
super.getAge();
System.out.println("18");
}
}
(Answer2)
public class Answer2 extends Question{
public void getSex() {
System.out.println("女");
}
public void getHeight() {
System.out.println("1.63");
}
public void getClothes() {
System.out.println("17");
}
}
(Answer3)
public class Answer3 {
public void getSex() {
System.out.println("男");
}
public void getHeight() {
System.out.println("1.75");
}
public void getClothes() {
System.out.println("19");
}
}
(Index)
public class Index {
public static void main(String[] args) {
Question question = new Answer1();
question.getSex();
question.getHeight();
question.getAge();
}
}