【那些年关于java多态应用】
2016-10-15 17:28
281 查看
1.多态:具有表现多种形态的能力的特征
父类:
public abstract class Animal {
public abstract void Say();
}
子类:
public class Dog extends Animal {
@Override
public void Say() {
System.out.println("狗");
}
}
public class Cat extends Animal{
@Override
public void Say() {
System.out.println("猫");
}
}
因此这样就可以将父类中的抽象Say()方法重写
2.如果把引用变量转换为子类类型,则称为向下转型,如果把引用变量转换为父类类型,则称为向上转型。在进行引用变量的类型转换时,会受到各种限制。而且在通过引用变量访问它所引用的实例的静态属性、静态方法、实例属性、实例方法,以及从父类中继承的方法和属性时,java虚拟机会采用不同的绑定机制。
3.java编译器允许在具有直接或间接继承关系的类之间进行类型转换,对于向上转型,不必使用强制类型转换,因为子类的对象肯定也可看做父类的对象。例如一个Dog对象是一个Animal对象,也是一个Object对象
4.使用父类方法实现多态
父类:
public class Animal {
public void Say(){
};
}
子类:
public class Dog extends Animal {
public void Say() {
System.out.println("狗");
}
}
只要和父类方法名相同即可重写父类方法
父类:
public abstract class Animal {
public abstract void Say();
}
子类:
public class Dog extends Animal {
@Override
public void Say() {
System.out.println("狗");
}
}
public class Cat extends Animal{
@Override
public void Say() {
System.out.println("猫");
}
}
因此这样就可以将父类中的抽象Say()方法重写
2.如果把引用变量转换为子类类型,则称为向下转型,如果把引用变量转换为父类类型,则称为向上转型。在进行引用变量的类型转换时,会受到各种限制。而且在通过引用变量访问它所引用的实例的静态属性、静态方法、实例属性、实例方法,以及从父类中继承的方法和属性时,java虚拟机会采用不同的绑定机制。
3.java编译器允许在具有直接或间接继承关系的类之间进行类型转换,对于向上转型,不必使用强制类型转换,因为子类的对象肯定也可看做父类的对象。例如一个Dog对象是一个Animal对象,也是一个Object对象
4.使用父类方法实现多态
父类:
public class Animal {
public void Say(){
};
}
子类:
public class Dog extends Animal {
public void Say() {
System.out.println("狗");
}
}
只要和父类方法名相同即可重写父类方法
相关文章推荐
- 关于java社团应用技术的一次摸底
- java多态编程实例应用
- java中关于excel的api应用2
- 关于高负载高并发的服务器端应用,java解决方案(一)
- Java【多线程知识总结(7)】多线程同步问题-关于synchronized代码块和synchronized方法的应用
- 有关于JAVA与后端C应用UTF8字符的通信
- 关于JAVA中JNI的应用
- 关于JAVA反射应用容易出现的一个隐性错误:
- 关于ActionScript 3.0 中方法重写和继承的发现(运行时多态,原理同Java)
- 黑马程序员_关于多态的应用举例
- 有关于JAVA与后端C应用UTF8字符的通信
- 关于Java Me的文件系统应用之Fc Api
- 关于JAVA框架应用的学习方法
- java开发中关于FileInputStream和FileOutputStream的应用
- 关于java多态的问题
- 关于java中的向上转型和多态
- 关于Java运行时的多态。
- 关于Java对象序列化的应用~~~
- 关于Java Web应用中的配置描述符web.xml
- 关于java中static关键字在单态设计模式的应用学习和总结