家如何网站刷网站seo排名软件
news/
2025/10/6 8:56:48/
文章来源:
家如何网站,刷网站seo排名软件,界面设计与制作是做什么的,wordpress 图标 png#xff08;1#xff09;什么是多态#xff1f;
同类型的对象#xff0c;表现出不同的形态。前者指父类#xff0c;后者指不同的子类
说简单点#xff0c;就是父类的同一种方法#xff0c;可以在不同子类中表现出不同的状态#xff0c;或者说在不同子类中可以实现不同…1什么是多态
同类型的对象表现出不同的形态。前者指父类后者指不同的子类
说简单点就是父类的同一种方法可以在不同子类中表现出不同的状态或者说在不同子类中可以实现不同的效果重写。
2多态的前提
有继承/实现关系------有了继承才有子父类之分有父类引用指向子类对象------,如Animal a new Dog(); ——小到大向上转型。这里父类引用指向子类对象其实相当于把子类对象当父类对象来用所以这是一种向上转型的引用。有方法重写------在不同的子类中重写父类方法实现自己不同的功能。当然也可以不重写主要是重写这个功能使得每个子类都独具一格不会全都相同这是多态重要的一点。
3多类的好处
方法使用父类类型作为形参就可以接收所以子类对象体现多态的扩展性与便利
4多态的表现形式
父类类型 对象名称new 子类类型
Fu anew Zi();
5调用的特点
成员变量编译看左边运行也看左边成员方法编译看左边运行看右边子类如果进行方法重写的话父类里的方法就被覆盖 6 多态弊端是什么
不能调用子类特有功能因为编译看左边特有功能表示父类没有代码直接报错
7引用数据类型的转换有几种方式
自动类型转换强制类型转换可解决弊端
//自动类型转换
Person pnew Student;//小(Student)---大(Person)
//强制类型转换
Student s(Student)p;//大(Person)---小(Student)
8强制类型转换能解决什么问题
可以把对象转换成真正的子类类型从而调用子类的特有功能转换类型与真实对象类型不一致会报错转换的时候用instanceof关键字进行判断它属于哪个子类
9综合练习
根据需求完成代码 父类Animal
package duotai;public class Animal {private String color;private int age;public Animal() {}public Animal(String color, int age) {this.color color;this.age age;}public String getColor() {return color;}public void setColor(String color) {this.color color;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public void eat(String something){System.out.println(动物在吃something);}
} 子类Dog
package duotai;public class Dog extends Animal{public Dog() {}public Dog(String color, int age) {super(color, age);}Overridepublic void eat(String something) {System.out.println(此时此刻getAge()岁getColor()颜色的狗抱着something猛吃);}public void lookHome(){System.out.println(狗在看家);}}子类Cat
package duotai;public class Cat extends Animal{public Cat() {}public Cat(String color, int age) {super(color, age);}Overridepublic void eat(String something) {System.out.println(此时此刻getAge()岁getColor()颜色的猫眯着眼吃something);}public void catchMouse(){System.out.println(猫抓老鼠);}
}Person类
package duotai;public class Person {private String name;private int age;public Person() {}public Person(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}/*public void keepDog(Dog dog,String someting){System.out.println(this.age的this.name养了一条dog.getColor()的dog.getAge()岁的狗);dog.eat(someting);}public void keepCat(Cat cat,String someting){System.out.println(this.age岁的this.name养了一条cat.getColor()的cat.getAge()的小猫);cat.eat(someting);}//一个一个构造饲养动物的方法过于繁琐*///构造一个方法能够接收所有的动物//方法的形参可以写这些类的父类就可以接收所以子类对象多态public void keepPet(Animal a,String something){//if条件语句判断它属于哪一个子类进行强转就可以使用子类特有的方法if(a instanceof Dog ){Dog d(Dog)a; //Animal强转成DogSystem.out.println(this.age的this.name养了一条a.getColor()的a.getAge()岁的狗);a.eat(something);d.lookHome();} else if (a instanceof Cat ) {Cat c(Cat)a; //Animal强转成CatSystem.out.println(this.age的this.name养了一条a.getColor()的a.getAge()岁的小猫咪);a.eat(something);c.catchMouse();}else {System.out.println(没有这种动物);}}
}
测试类
package duotai;public class Test {public static void main(String[] args) {/*Person p1new Person(西施,15);Dog dnew Dog(粉红,2);p1.keepDog(d,美味的鸡叉骨);//选中shiftF6:批量修改Person p2new Person(花木兰,16);Cat cnew Cat(淡黄,4);p2.keepCat(c,美味的小鱼干);*/Person p1new Person(西施,15);Dog dnew Dog(粉红,2);p1.keepPet(d,美味的鸡叉骨);Person p2new Person(花木兰,16);Cat cnew Cat(淡黄,3);p2.keepPet(c,美味的小鱼干);}
}结果 注意
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929130.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!