java如何理解多态
admin
2023-09-12 01:06:33

各位好,很多人还不知道java是怎么理解多态性的。下面详细解释一下。现在让我们来看看!

Java多态性是一个抽象的概念。虽然感觉到了,但是一直解释不清楚。无意中发现了一段更容易理解多态性的代码,可以体现多态性的优势。下面就录下来分享到这里总结一下。

多态,这个面向对象中最重要的概念,在Java中得到了体现:父类的引用指向子类的对象。

多态性是同一行为具有多种不同表现或形式的能力。

方法调用:向左编译,向右运行。

变量调用:编译时向左看,运行时向左看。(多态性侧重于行为多态性)

存在继承/实现关系

方法覆盖

有指向子类对象的父类引用。

在多态形式中,正确的对象可以实现组件切换,

//定义一个动物类

动物类{

//动物有办法跑

公共无效运行(){

System.out.println("动物能跑");

}

}

//定义动物的子类,猫

类别猫扩展动物{

@覆盖

公共无效运行(){

System.out.println("猫能跑");

}

//编写一个特定于Cat的方法

publicvoideatFish(){

System.out.println("猫在吃鱼");

}

}

//编写一个测试类

公共类测试{

公共静态voidmain(String[]args){

//我们创建一个Cat对象并执行它的run方法肯定是没有问题的。

CatCat=newCat();

cat.run();

//多态形式我们可以用一个动物变量来接受一个猫对象。

animalanimalCat=newCat();

animalcat.run();

}

}

可以看出,虽然我们用Animal接受了一个Cat类,但是在调用run方法时,执行的是Cat重写的run方法,而不是Animal的run方法。

易于扩展和维护。可以实现类之间的解耦。

子类的唯一函数不能在多态下使用。

下面是一个简单易懂的应用场景。

需求:

创建三个类:人、学生和老师。Person是父类,实现Comparable接口并覆盖pareTo方法。学生和教师是人的子类。

创建一个测试类,并编写一个静态方法来比较测试类中的年龄。

写一个Person类,实现可比重写pareTo方法。

公共类人实现可比{

私有字符串用户名;

私人年龄;

公共字符串getUsername(){

返回用户名;

}

publicvoidsetUsername(字符串用户名){

this.username=用户名;

}

publicintgetAge(){

回归年龄;

}

公共无效存储(整数){

this.age=年龄;

}

@覆盖

公共字符串toString(){

返回"学生{"+

"用户名='"+用户名+'''+

“,年龄="+年龄+

'}';

}

@覆盖

publicintpareTo(Persono){

返回this.age-o.age;

}

}

编写一个学生类来继承Person类。

公共课学生拓展人{

}

写一个老师类来继承Person类。

公共课教师扩展人{

}

编写一个测试类,并在测试类中编写一个静态年龄比较方法。

公共类测试{

公共静态voidmain(String[]args){

//创建一个学生对象

学生学生=新生();

Student.setUsername("小明");

student.setage(20);

//创建教师对象

老师老师=新老师();

Teacher.setUsername("刘老师");

teacher.setage(35);

可比maxAge=getMaxAge(学生,老师);

system.out.println(maxAge);

}

//创建一个静态方法来比较年龄

//传入两个可比较的实现类对象。

//返回一个类似的实现类对象

公共静态可比getMaxAge(可比a,可比b){

intresult=a.Pareto(b);

//如果result0,c1大于C2;

//如果result==0,c1和c2一样大;

如果(结果>=0){

返回a;

}否则{

返回b;

}

}

}

执行结果

这种年龄比较方法使用多态形式。我们可以通过学生班主任课。只要被比较的两个类属于同一个父类,我们就可以直接调用这个静态方法进行比较。

以上解释了java对多态性的理解。这篇文章已经分享到这里了,希望能帮到你。

相关内容

热门资讯

金花创建房间/微信金花房卡怎么... 1.微信渠道:(荣耀联盟)大厅介绍:咨询房/卡添加微信:88355042 2.微信游戏中心:打开微...
金花房间卡/金花房卡如何购买/... 金花房间卡/金花房卡如何购买/新超圣金花房卡正版如何购买新超圣是一款非常受欢迎的游戏,咨询房/卡添加...
牛牛创建房间/金花房卡批发/神... 微信游戏中心:神牛大厅房卡在哪里买打开微信,添加客服【88355042】,进入游戏中心或相关小程序,...
链接牛牛/牛牛房卡游戏代理/鸿... 鸿运大厅房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
科技实测!牛牛房卡怎么获得/乐... 微信游戏中心:乐酷大厅房卡在哪里买打开微信,添加客服【88355042】,进入游戏中心或相关小程序,...