本篇文章小编给大家分享一下java多态注意项代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
展示多态现象
package test; //父类引用,指向(不同子类)的实例,对同一个实例方法名调用,调用的程序不 //一样。继承是多态得以实现的基础。 public interface test1 { void shout(); }
package test; public class test2 implements test1 { public void shout() { System.out.println("1111"); } }
package test; public class test3 implements test1 { public void shout() { System.out.println("222222"); } }
package test; public class test4 { public static void main(String[] args) { test1 ts = new test2(); ts.shout(); test1 ts1 = new test3(); ts1.shout(); } }
多态的基础以及限制
package test; public class test5 { public static void speak() { System.out.println("speak:"); } }
package test; public class test6 extends test5{ public static void speak() { System.out.println("11111"); } //多态的基础是继承和重写 //多态仅限于实例方法 public static void main(String[] args) { test5 ts1 = new test5(); test6 ts = new test6(); ts1.speak(); ts.speak(); } }
对象类型转换
package test; public class test7 { public void speak(){ System.out.println("speak:"); } }
package test; public class test8 extends test7{ @Override public void speak() { System.out.println("1111"); } }
package test; public class test9 extends test7 { @Override public void speak() { System.out.println("22222"); } protected void action() { System.out.println("敲代码"); } }
package test; public class test10 { public static void main(String[] args) { //向上类型转换 隐式 安全 //将test8的对象当作test7类型来用 test7 ts = new test8(); ts.speak(); //强制类型转换 显示 不安全 test7 ts1 = new test9(); test9 ts2 = (test9) ts1; ts2.speak(); //怎么避免强制类型转换带来的不安全 面向接口编程加instanceof test7 ts3 = new test8(); test7 ts4 = null; if (ts3 instanceof test9) { ts4 = (test9) ts3; } if (ts3 instanceof test8) { ts4 = (test8) ts3; } ts4.speak(); } }
object类
Object类的常用方法也可以被重写
package test; public class test11 { public void speak(){ System.out.println("speak:"); } }
package test; public class test12 { public static void main(String[] args) { test11 ts = new test11(); ts.speak(); //返回该对象的字符串表示 System.out.println(ts.toString()); //返回该对象的哈希码值 System.out.println(ts.hashCode()); } }
匿名内部类
package test; public interface test13 { void speak(); }
package test; public class test14 { //类里面定义的类称之为内部类(Inner Class),内部类是外部类的一个成员。 //Java内部类可以分为:成员内部类、方法内部类和匿名内部类等。 class person implements test13{ @Override public void speak() { System.out.println("111111"); } } public static void main(String[] args) { class person1 implements test13{ @Override public void speak() { System.out.println("2222222222"); } } // 可以使用匿名内部类来实现接口。所谓匿名内部类就是没有名字的内部类,表面上看 // 起来它似乎有名字,实际那不是它的名字。当程序中使用匿名内部类时,在定义匿名 // 内部类的地方往往直接创建该类的一个对象。 new test13(){ @Override public void speak() { System.out.println("3333333"); } }.speak(); } }
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级