Java语言基础之多态
来源:互联网 发布:淘宝电商卖家怎么做 编辑:程序博客网 时间:2024/06/05 22:37
多态指的就是重载和覆盖
Animal类:
package Com;public abstract class Animal { //抽象类public String name;public void walk(){System.out.println(name+"..... Animal walk!!!");}public void howl(){System.out.println(" .....xxxxx.....");}// 规则 规范public abstract void howl2(); // 抽象方法}
Cat类:
package Com;public class Cat extends Animal{public void howl(){System.out.println("..... miaomiao!!!");}@Overridepublic void howl2(){System.out.println("Cat howl2..... miaomiao!!!");}}
Dog:
package Com;public class Dag extends Animal{public void Swim(){System.out.println(".... swim....");}public void howl(){System.out.println(" wangwang");}@Overridepublic void howl2(){System.out.println("Dog howl2 wangwang");}}
Main:
package Com;public class main {/** * @param args */public static void main(String[] args) { // 1// 用子类赋值给父类,父类animal调用的方法 是子类对象Dog()的方法howl()// 但是父类无法调用父类未声明子类已有的方法swim()Animal animal= new Dag();//animial.swim() 父类中未声明,但是子类中含有swim方法,这条语句无法实现 animal.howl(); // 普通方法 animal.howl2(); // 抽象方法 // 2 // getMsg(animal); // 传入的是对象dog(); Dag dog = new Dag(); dog.name="xiaohua"; getMsg(dog);}public static void getMsg(Animal animial){animial.howl();if (animial instanceof Dag) //方法1: 判断Dag是不是animal 的子类{Dag dog= (Dag)animial;//animial.Swim(); 父类无法调用子类的方法,但是强制类型转换后可调用子类的方法Swimdog.Swim();}if (animial.getClass()== Dag.class)//方法2 : 判断Dag是不是animal 的子类{Dag dog= (Dag)animial;//animial.Swim(); 父类无法调用子类的方法,但是强制类型转换后可调用子类的方法Swimdog.Swim();}} }/** * 小结: * Java中的多态就是重载和覆盖 * 重载:函数名相同,但是参数不同方法 * 覆盖:使用子类赋值给父类的方式 * 在覆盖的情况下,分为编译期(编译器在进行编译时的状态)和运行期(实际运行的状态) * 在运行期时,父类声明的方法在子类中同样也有相应声明并实现时,调用的是子类的方法。 * 在编译期时,父类中的被staitc private final修饰和构造器都是调用父类的,不再进行调用子类的。 * */
0 0
- Java语言基础之多态
- java语言基础之多态
- java基础之多态
- java基础之多态
- java基础之多态
- JAVA基础之多态
- JAVA基础之多态
- JAVA基础之多态
- java基础之多态
- java基础之多态
- JAVA基础学习之多态
- java基础概念之多态
- Java基础总结之多态
- Java基础语法之多态
- 黑马程序员----Java基础之多态
- Java基础之多态的一些看法
- 黑马程序员—JAVA基础之多态
- Java基础之多态、内部类
- leetcode之Search Insert Position
- CMD 里的cd命令,dir命令和set path命令
- 动态规划之硬币组合问题
- NumPy 笔记[0]
- C语言第一章:C语言基础
- Java语言基础之多态
- 嵌入式的根文件系统
- SQL不同数据库下的查询前n条记录
- 洋洋洒洒c作业
- [leetcode] Binary Tree Right Side View
- LXT6架构-嵌入式Web服务器Nginx交叉编译与配置使用(ARMv7)
- Linux netfilter 学习笔记 之三 ip层netfilter的table、rule、match、target结构分析
- Genymotion模拟器不能上网的解决办法
- 【LeetCode】Valid Parentheses