继承 重写 自动转型/ 多态
2017-07-23 12:10
204 查看
----------------继承-----------------------
Public class Men { //父类定义
private string name ;
Public void setname()
{
name = “sx”;<
4000
/p>
}
}
//Sx(书訢)属于人的子类对吧,所以Sx将men继承,属于men的子类
//继承是用关键词extends 表示Sx是Men的子类
// Sx是men的子类之后可以调用Men中的public方法
Public class Sx extends Men //子类的定义
{
}
//如果此时在主函数中实例化Sx的对象,如以下代码
public static viod main(String [] args)//子类的实例化与调用父类的函数
{
Sx sx=new Sx();
Sx.setname(); //这里并不会显示错误,原因是Sx是Men的子类可以调用Men中的方法
}
----------------------------重写overwrite---------------------------
因为子类的特征不同,就像书訢和别人有不同对啊,所以有他自己的特点
如:
Public class Sx extends Men
{
Public void setname()
{
name=”sxsx”;
//这里进行了子类的重写
}
}
//如此之前父类中的名字是sx,现在重写变成sxsx,就是这个原理
//重写只改变方法的内容(即函数的内容)但是函数的类型,参数类型,数量不可改变。
//注意重载与重写
----------------------自动转型upcast
-------------------
//哈哈所谓的代码中小范围的阶级跃迁
之前定义了子类Sx父类Men
而在后面的代码中实例化时候是这样的
Sx sx=new Sx();
其实这样也是可以的
Men sx=new Sx();
原因是什么呢?其实代码可以这样写
Sx sx; //这相当于我们定义一个变量int
a;同理
sx=new Sx(); //Sx是一个类,new
Sx实例化一个对象,并将它赋值(可能这个说法不太准确)给sx
那么同理,用父类中进行定义一个sx,并用子类的进行实例化赋值,当然也是可以的啊。
一个子类的对象你当然可以说它也是一个父类的对象咯,就像你说一个高中生 ,它当然也是一个学生咯。(是不是言简意赅,深刻发省2333)
需要注意的一点是,刚刚讲了自动转型,和类似我们定义变量的一样
当实例化一个对象之后,调用的是什么函数呢?
答案很简单,因为之前讲了new Sx,进行赋值,那么实际上还是用了子类的功能,所以调用的当然就是子类的啦
接下来总结一下
A a =new A; 调用方法 a.f()
这个实际上就是实例化对象和调用函数
A a=new B; 调用方法 a.f()但是前提就是B必须是A的子类,并调用函数。
重写只是函数内容改变,其他都不改变,要区分重写与重载
自动转型,子变父,调用还是子类的
相关文章推荐
- 构造器、方法重载、继承、方法重写、自动转型、多态课堂笔记
- java基础 继承 重写 多态 自动转型
- JAVA【类】析构器、重载与继承、方法的重写、自动转型、多态、方法与类的分类、接口继承
- java 继承 方法重写 自动转型 多态 接口 抽象类
- java 继承 方法重写 自动转型 多态 接口 抽象类
- JAVA构造器+继承+重载与重写+自动转型与多态
- 继承,多态,重载,重写,向上/下转型
- 课时003:自动转型多态,方法分类,类分类,接口继承
- 类的继承、方法重写、自动转型
- Java中类,继承,方法重写和自动转型的理论感悟
- 对象之间的通信,面向对象的三大特征,封装,继承,多态;以及重写,重载
- 关于ActionScript 3.0 中方法重写和继承的发现(运行时多态,原理同Java)
- 多态、继承---常量的覆盖和方法的重写
- 2016.3.6学习多态:构造器、协变返回、继承、组合、向下转型
- 4.继承、重写、多态
- 继承父类的方法,父类方法的覆写。 向上转型后父类对象执行被覆写后的方法 向上转型后再向下转型 非多态强转? 多态的例子
- JAVA面试题解惑系列(九)——继承、多态、重载和重写
- 重载,重写,封装,继承,多态 等。
- JAVA面试题解惑系列(九)——继承、多态、重载和重写
- 重载,继承,重写和多态的区别: