/**
* 下面先来说一下变量
* 我们来以int类型的基本数据类型为例子
*/
class IntDemo
{
int num = 0;
num = 1;
long = num;
byte num1 = (byte)num;
}
/**
*看一下上面打代码是很简单的,我们定义了一个变量 num 为int类型
*那么我们可以这样说一句话:
*只要等号右边的是int范围内的数值就可以说它是int整数,例如1是int整数,99是int整数……
*那么接下来在看,num也是long整数。
*/
/**
好那么接下来我们来看看引用数据类型中的类吧
/**
* 先定义一个动物类,有叫的方法shout()和 展示自己皮毛颜色的方法show()
*/
abstract class Animal
{
//动物叫的方法
abstract void shout();
abstract void show();
}
/**下面定义一个狗类来继承动物类
* 并在类中重写动物的叫的方法
*/
abstract class Dog extends Animal
{
void shout ()
{
System.out.println("汪汪汪");
}
}
/**
* 下面定义一个泰迪狗类的类,来继承狗类
*
*/
class TaiDi extends Dog
{
void show ()
{
System.out.println("泰迪的颜色是棕色的");
}
}
/**
* 下面定义一个金毛狗类来继承狗类
*/
class JinMao extends Dog
{
void show()
{
System.out.println("金毛的眼谁是金色的");
}
}
/**
* 下面定义个一测试类用来创建对象以便于正好解释
*/
public class TestDemo
{
public static void main(String[] args)
{
//这一部分就是多态的体现
Animal xiaoTai = new TaiDi();
Dog xiaoTai1 = (Dog)xiaoTai;
Dog xiaoJin = new JinMao();
Animal xiaojin1 = xiaoJin;
}
}
/**
* 现在我们来看测试类中的对象
* 第一部分;
* 显然我们先定义了一个Animal 类型的TaiDI狗xiaoTai
* Animal xiaoTai = new TAIdi;这句话我们就可以理解为泰迪狗xiaoTai是动物
* 然后我把xiaoTai这个对象的引用传给了一个类型为Dog类型的对象xiaoTai1
* Dog xiaoTai1 = (Dog)xiaoTai;这句话我们可以理解为 xiaoTai是一只狗,而
* 有有了新的名字xiaoTai1
*第二部分:
* 我们又定义了一个Dog类型的对象 xiaoJin
* Dog xiaoJin = new JinMao();这句话可以理解为 金毛狗小金xiaoJin是狗
* 然后我们把对象xiaoJin的引用传给了 Animal类型的对象xiaoJin1
* Animal xiaojin1 = xiaoJin;这句话可以理解为狗xiaoJin是动物
* 当然我们看的出来上面的两个部分一个是从上向下,一个是从下向上
*/
/**
* 现在我们来对比一下基本数据类型的变量 和对象不难看出 二者之间是有相似之处:
* 第一、等号左边的就是变量名字就相当于我们的对象名
* 等号右边的具体数值就相当于我们的对象
* 左边就是数据的载体(虽然对象名是存储的地址,但是我们要通过地址来找到具体的对象在这里就也当成数据的载体)
* 左边的都是相对抽象一点的,而右边的都是数据的具体体现
* 第二、基本数据类型又隐式转换和强制转换,而引用数据类型的对象也可以向下向上转换
* 虽然名字不一样,但是我们发现都是小范围的数据传给大范围的不需要强制,而大范围的数据传给小的需要强制。
* 那么到了这里我们不难发现,其实所谓的多台只不过是把我们平时熟悉的数值数据换成了对象数据而已。
* 以上就是我对这一部分知识的理解,希望各位黑马的初学者同学们可以借鉴一下我的分析来理解,也希望各位前辈来理解,这是第一次在论坛里作
* 来了黑马基础视频辅导班之后整个人都变的理性了有木有,变的不只是技术,还有我们的态度——对生活的态度
*/
|