Java学习笔记---继承、多态

继承

**定义:**可以基于已经存在的类构造一个新的类,新的类继承已有的类可以复用父类的方法和属性,与此同时还可以添加一些新的方法和属性。


java中继承使用extends关键字,被继承的类成为父类、基类、超类。子类可以重写父类的方法(Override)重写的方法方法名、参数列表相同但方法体不同。继承具有传递性,子类利用重写修改父类的方法。当子类对象的重写方法被调用时(无论是通过子类的引用调用还是通过父类的引用调用),运行的是子类的重写修改后的版本。

重写的原则:

​ 方法名和参数列表必须相同

​ 返回值类型、声明的异常范围必须小于父类

​ 访问修饰符比父类要大

父类Car拥有name属性,drive和didi方法

public class Car {

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    private String name;

    public void didi(){
        System.out.println("滴滴!");
    }

    public void drive(){
        System.out.println("慢慢开车中。。。");
    }
}

子类RunCar继承Car,所以拥有父类的name属性和didi方法,子类重写了父类的drive方法并且拥有自己的属性color

public class RunCar extends Car {

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    private String color;

    @Override
    public void drive() {
        System.out.println("飙车中!");
    }

    public static void main(String[] args) {
        RunCar runCar = new RunCar();

        runCar.setColor("红色");
        runCar.setName("大牛");

        System.out.println(runCar.getColor()+"的"+runCar.getName());
        runCar.didi();
        runCar.drive();
    }
}

执行输出:

​ 红色的大牛
​ 滴滴!
​ 飙车中!

public static void main(String[] args) {
    Car car = new RunCar();
    car.drive();
}

执行输出:

​ 飙车中!

多态

**定义:**多态是同一个行为具有多个不同表现形式或形态的能力。

实现多态的途径:重写、重载、实现接口

重写:要求同上文

public class Car  {
	public void drive(){
        System.out.println("慢慢开车中。。。");
    }
}


public class RunCar extends Car {
    @Override
    public void drive() {
        System.out.println("飙车中!");
    }
}

重载:同一个类中方法名相同的方法参数列表不通的情况下,返回值也可以不相同

@Override
public void drive() {
    System.out.println("飙车中!");
}


public String drive(String where){
    return "路上";
}

接口:不同的实现类可以实现同一个接口

interface Car{
    public void drive();
}
class RunCar implements Car{
    public void drive(){
        System.out.println("跑的飞快。。。");
    }
}
class StopCar implements Car{
    public void drive(){
        System.out.println("在家抱窝。。。");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值