1.多态定义:
多态是指两个或多个属于不同类的对象对同一个信息(方法调用)做出不同响应的方式。
2.产生多态的条件:
有继承
有重写
父类的引用指向子类的对象
代码
public class Question {
public void height() {
System.out.println("身高多少?");
}
}
public class Answer1 extends Question {
public void height() {
super.height();
System.out.println("190cm");
}
}
public class Answer2 extends Question {
public void height() {
super.height();
System.out.println("150cm");
}public static void main(String[] args) {
Question q = new Answer1();
q.height();
Question q1 = new Answer2();
q1.height();
}
}
3.实现接口的关键字:implement
4.为什么要用接口?
接口可用来实现多重继承,java中多重继承,定义类时,只可有一个父类。但是每个类可以实现多个接口,以这种方式来实现多重继承。
5.使用接口的好处
1.类与接口的关系,实现关系,而且是多实现,一个类可以实现多个接口,类与类之间是继承关系,java中的继承是单一继承,一个类只能有一个父类,打破了继承的局限性。
2.降低了程序的耦合性
6.接口和抽象类的区别
1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;
2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
4)一个类只能继承一个抽象类,而一个类却可以实现多个接口。
代码
public interface Flyable {
public void fly();
}
public class Plane implements Flyable{
public void fly() {
System.out.println("飞机靠燃料飞行");
}
}
public class Birds implements Flyable{
public void fly() {
System.out.println("鸟靠挥动翅膀飞行");
}
public static void main(String[] args) {
Birds b = new Birds();
b.fly();
Plane p = new Plane();
p.fly();
}
}