JAVA基础总结——六继承和多态

走进Java你会发现有和其他语言不一样的风格,它可以继承父类,它会省去很多的代码,虽然它也会有修改不便等一些的问题,但是它还是好处蛮多的。
什么是继承?

继承:基于某个父类,制定新的子类,可以继承父类原有的属性和方法(用extends关键字)

子类对父类怎么调用?

在继承的子类中可以用super()调用父类的构造方法,也可以用super关键字用调用成员方法(前提是不能是private类型的方法)

方法重写是什么?

子类将父类的成员方法名不改变,重写它的实现方式。

什么是方法重构?

重构是一种特殊的重写,它在格式上要和父类方法保持完全一致(返回值,参数)和父类方法唯一的不同就是实现的内容不同

在使用一系列的构造方法后他的调用顺序是怎样的?

它是从高到低(先从最顶级的父类往下进行)因为在调用过程中,编译器的实例化顺序是先实例化最高级父类再到下一级以此类推,无参的构造方法可以在实例化子类之前系统会自动实例化父类,但是如果是有参数的构造方法那它就要实例化父类的对象和子类的对象。
对象类型转换
(1)向上转型:是一个安全的从具体到抽象的转换,把子类的对象赋给父类类型的变量
如: 使用方法:
在这里插入图片描述
转自我学习一个礼拜做的小型租车系统,其中Hirecar是父类,其余的是几种不同的车类型为子类,使用向上转型,现在看来设计的真糟糕,但是这个代码是主要用来看看向上转型
(2)向下转型
向下转型则和向上转相反,它是从抽象到具体自然也会伴随着风险(子类一定是父类的实力,但父类不一定是自而立的实例)如果强制的将父类对象直接付给子类就会发生错误
如图:
在这里插入图片描述
产生了编译错误,那用什么来判断它到底能不能进行转换呢?
那接下来就该讲讲instanceof关键字了,在执行向下转之前先判断父类的对象是否为子类的实例,就用instanceof关键字实现
使用格式:
子类对象 instanceof 父类//这仅仅是在向下操作instance的之中用法
标准格式:
exp instanceof Expclass; exp为某个类的对象,Expclass为其他类
if(new 父类 instanceof 子类)
{ 子类 c=(子类)new 父类()
}
例如:
在这里插入图片描述
或者县实例化父类,在上边直接调用父类对象
方法重载
要使实例化的对象有多种形式,那就得用到重载了,简单来说就是一些参数类型和个数不同构造方法在主方法中被调用(返回值不能作为区分重载的必要条件)
多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作。
在这里插入图片描述
多态的实现方法:
(1)重写
(2)接口
(3)抽象方法或抽象类
那说道抽象方法和接口,那什么是接口和抽象方法呢?
接口这个词在生活中也是特别经常用到,比如usb接口,接口是用来实现一定公能的,usb接口就是为了让数据和电源连接实现充电或者数据传输功能,那了解的接口的含义接下来就到了使用接口的环节了,抽象方法和接口功能大致相同。
接口定义语法:
public interface drawinter{
接口实现方法
}
接口的使用
class implement drawinter{
接口方法实现
}
class implement drawinter【,接口2…】{
接口方法实现
}

注意:在接口中方法只能定义为public 或者abstract类型,否则会报错,在接口中定义的任何字段都是static,final的
抽象类
抽象类相当于多个接口的集合,它除了其他类继承没有任何用处,它可以大致规范自己的子类大概要实现一些什么样的方法,当然子类继承它的方法同时也可以有自己其他的实现方法
语法如下:
public abstract class Class1{
抽象方法
}
今天就说道这,这些面向对象特有的方法需要好好回味,用的恰当能有事半功倍的效果!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值