java之多态

对象的多态形态
1、引用多态
父类的引用可以指向本类的对象
父类的引用可以指向子类的对象
2、方法多态


我们想讲引用多态

a、创建父类

public class Transport {

}

b、创建子类

public class Airplane extends Transport {

}

……
c、实现

public class InitialTransport {
    public static void main(String[] args) {
        Transport p1=new Transport();//父类创建自己的对象
        Transport p2=new Airplane();//父类引用子类的对象
        Transport p3=new Steamboat();
        Transport p4=new Bus();
        //Bus p5=new Transport();//子类不能够引用父类的对象
    }
}

方法多态
父类中添加一个方法

public class Transport {
    public void sets(){
        System.out.println("交通工具有座位");
    }
}

子类中重写

package com.imooc;

public class Steamboat extends Transport{
@Override
    public void sets() {
        // TODO Auto-generated method stub
        System.out.println("游艇有300个座位");
    }
}

子类中不重写方法(将调用继承的方法)

public class Bus extends Transport {
}

子类中有父类中没有的方法,能用多态调用该方法吗?

package com.imooc;

public class Airplane extends Transport {
    @Override
    public void sets() {
        // TODO Auto-generated method stub
        System.out.println("飞机有1000个座位");
    }
    //父类中没有的方法
    private void fly() {
        // TODO Auto-generated method stub
        System.out.println("飞机可以飞");
    }
}

方法的实现



package com.imooc;

public class InitialTransport {
    public static void main(String[] args) {
        Transport p1=new Transport();//父类创建自己的对象
        Transport p2=new Airplane();//父类引用子类的对象
        Transport p3=new Steamboat();
        Transport p4=new Bus();//特例1:bus 中没有重写sets方法,调用的将是继承的方法
        //Bus p5=new Transport();//子类不能够引用父类的对象
        p1.sets();
        p2.sets();
        p4.sets();
        //p2.fly();用父类引用子类的特殊方法不能实现
    }
}

运算结果

交通工具有座位
飞机有1000个座位
交通工具有座位
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值