多态:
(1)定义:
多态指两个或多个属于不同类的对象,对于同一个消息(方法调用)做出不同响应的方式。
多态存在于父子类之间;子类要重写父类的方法。
(2)怎么构成多态:
编译时是父类对象,运行时是子类对象:父类 父类对象 = 子类实例;
(3)多态编程实例:
class A{
public void name() {
System.out.println("父类");
}
}
class B extends A{
public void name() {
System.out.println("重写父类");
}
public void kind() {
System.out.println("子类的方法");
}
}
public class DuoTai {
public static void main(String[] args) {
A a = new B(); //父类对象在编译时是A类,在运行时是B类
a.name();
//运行结果是:重写父类
}
}
接口:
(1)定义:
接口是一种特殊的抽象类,它用interface来修饰,它有一堆抽象方法,如果要实现接口,就要实现接口的所有抽象方法。
(2)接口的好处:
接口可以实现多个,增加了代码的可维护性,
(3)接口编程实例:
interface Fly {
public void fly(); // 接口里的抽象方法不用写abstract 来修饰
}
interface Eat {
public void eat();
}
interface Oil {
public void addOil();
}
class Bird implements Fly,Eat { //一个类可以实现多个接口
@Override
public void fly() {
System.out.println("鸟用翅膀飞行");
}
@Override
public void eat() {
System.out.println("鸟需要吃食物");
}
}
class Plane implements Fly,Oil {
@Override
public void fly() {
System.out.println("飞机利用气流飞行");
}
@Override
public void addOil() {
System.out.println("飞机需要加油");
}
}
public class InterfaceDemo {
public static void main(String[] args) {
Bird b1 = new Bird();
Plane p1 = new Plane();
b1.fly(); //输出:鸟用翅膀飞行
b1.eat(); //输出:鸟需要吃食物
p1.fly(); //输出:飞机利用气流飞行
p1.addOil(); //输出:飞机需要加油
}
}