多态,继承最核心的思想,无任何废话

面向对象,继承,多态

继承

主要核心就是子类继承父类,子类不能调用父类private的属性和方法,其它权限都可以。子类构造方法里必须先加载父类构造方法,默认加载父类无参构造,如果父类没有无参,则必须用super主动调用。另外子类构造函数里this和super不能同时放在第一行。

当new出个子类对象时,系统会自动new个父类对象,然后才有子类对象的操作

继承的核心思想

没有无缘无故的继承,继承一定是满足is a 的概念,一种逻辑,比喻狗是动物,泰迪是狗,泰迪是动物,这都是自下而上的概率,反之我们不能说动物是狗,动物是泰迪。

向上和向下转型

1.为什么要向上转型?

因为子类继承父类的话,可以有多个子类。然后如果在一个方法里我要调用子类的方法来实现操作,那么如果没有向上转型,对于每一个子类,我都要单独写一个方法来接受子类对象。此时就需要向上转型来提高程序效率,这时候只需要方法参数设置为父类对象,实际调用时把子类对象放进去用,这时候会更加方便快捷就能用到子类重写的方法了

2.为什么要向下转型?

没错,用向下转型首先的前提是先得先上转型才能用向下转型。什么情况会用到这呢?

当我向上转型时,对于子类的新写的方法,我不能直接调用,这是只需要向下转型就能调用子类这些新方法了

抽象类

什么是抽象类?

顾名思义,抽象类表示这个类很抽象,什么意思呢?比如一个人类,我觉得它是抽象的,因为我不能把它具体到哪国人,可以是中国人,日本人,所以可以定义它为抽象,然后子类则具体到哪国人。同理一个动物是抽象的,工具是抽象的。

抽象类的语法含义

抽象类,普通类有的,抽象类有,普通类没有的抽象类也有。如:抽象方法,定义抽象方法目的就是定义一个抽象概念让子类去重写它,所以抽象方法不需要函数声明,只需要函数定义。其次子类可以是抽象类也可以是普通类,如果是普通类基础,则自下而上的所有抽象类方法都要重写 //注意一个类只能继承一个抽象方法

抽象类要注意的事情

抽象类如是个抽象概念,所有没有对象,但是我想使用抽象类里的普通方法怎么办呢?

我可以向上转型来调用抽象类的普通方法

接口类

什么是接口?

接口常用联想到鼠标接口,键盘接口,那么它们有什么接口呢,USP。

所有接口你可以理解为是个非常抽象且具体的功能,它是一个实实在在的功能,如接口,听筒,屏幕,发动机。

如此我一个子类可以实现多个接口,来达到我想实现什么功能我就安装什么接口,这样子类就是一个杂糅的东西有好多功能。

当然我子类实现接口,必然要重写这些接口,接口是个抽象概率,我重写它我就使他变得立体话,成为我独一无二的东西

public interface USB {
    public abstract void plugIn();
    public abstract void work();
}
public class KeyBoard implements USB{
    @Override
    public void plugIn() {
        System.out.println("键盘安装驱动中-");
    }

    @Override
    public void work() {
        System.out.println("键盘正常工作了");
    }
}
public class Mouse implements USB{
    public void plugIn(){
        System.out.println("鼠标安装驱动中——");
    }

    public void work(){
        System.out.println("鼠标正常工作了");
    }
}

接口类语法含义

接口类里只有全局常量和接口类,其它都没有,所有我们可以省略static final 和public abstrack 这些前缀了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值