学Java第三十天------------多态
- 创业
- 2025-09-19 22:48:01

面向对象三大特征:封装、继承、多态
继承:避免代码重复
没有继承就没有多态
一、什么是多态?写法? 二、代码示例一个类的成员变量用private修饰,在本类的成员方法可以使用,比如get方法的return name;或者show方法的sout(name+","+age); 之后在测试类创建该类的对象时,也可以直接调用这些方法get/show/……,这样就可以访问被private修饰的成员变量
一个类的成员方法被定义之后,就可以在本类被其他成员变量调用。也可以直接在子类的成员变量中调用父类的非私有成员变量。
子类中的成员变量得是和父类不同的,所以子类的get/set方法是只子类中的成员变量即可,然后就是方法的重用@Override
子类没有写有参构造函数,就不能在创建对象语句时直接赋值,但是可以在创建对象时什么也不写,因为无参构造方法是就算子类不写,系统也会默认加上的
1.父类---------Person package com.itheima.exe8; 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 show(){ System.out.println(name+","+age); } } 2.子类1-------Student package com.itheima.exe8; public class Student extends Person { @Override public void show(){ System.out.println("学生信息为"+super.getName()+","+super.getAge()); //也可以这样写: //System.out.println("学生信息为"+getName()+","+getAge()); } } 3.子类2-------Teacher package com.itheima.exe8; public class Teacher extends Person{ @Override public void show(){ System.out.println("老师信息为"+getName()+","+getAge()); } } 4.子类3-------Administrator package com.itheima.exe8; public class Administrator extends Person{ @Override public void show(){ System.out.println("管理员的信息为"+super.getName()+","+super.getAge()); } } 5.测试类----------Test package com.itheima.exe8; public class Test { public static void main(String[] args) { //先创建三个对象 //因为这三个子类都没有定义构造方法,所以不能直接赋值,要用set方法 Student s=new Student(); s.setName("张三"); s.setAge(18); Administrator a=new Administrator(); a.setName("阿伟"); a.setAge(28); Teacher t=new Teacher(); t.setName("老王"); t.setAge(40); register(s); register(t); register(a); } public static void register(Person p){ p.show(); } } 三、总结学Java第三十天------------多态由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“学Java第三十天------------多态”
上一篇
Mysql-如何理解事务?
下一篇
React常见面试题及答案