面向对象进阶--接口、多态
接口:
1 package com.unit10.test; 2 3 //属性是全局静态常量 4 //方法必须是public抽象方法 5 //没有构造方法 6 //无法实例化 7 public interface Mp3 { 8 String discrib="这是MP3接口"; 9 10 public abstract void playMusic(); 11 }
package com.unit10.test; public interface Map { public abstract void showmap(); }
1 package com.unit10.test; 2 3 public interface Wallet { 4 public abstract void pay(); 5 }
1 package com.unit10.test; 2 3 public abstract class Phone { 4 public abstract void call(); 5 }
1 package com.unit10.test; 2 3 public class Cellphone extends Phone implements Mp3,Map,Wallet{ 4 public void playMusic() { 5 System.out.println("开始播放音乐"); 6 } 7 8 @Override 9 public void call() { 10 System.out.println("开始打电话"); 11 } 12 13 @Override 14 public void pay() { 15 System.out.println("开始支付"); 16 17 } 18 19 @Override 20 public void showmap() { 21 System.out.println("开始导航"); 22 23 } 24 25 }
1 package com.unit10.test; 2 3 public class test { 4 5 public static void main(String[] args) { 6 Cellphone p=new Cellphone(); 7 p.playMusic(); 8 p.call(); 9 p.pay(); 10 p.showmap(); 11 12 } 13 14 }
多态:
1 package com.unit11.test; 2 3 public abstract class Pet { 4 public abstract void eat(); 5 6 }
1 package com.unit11.test; 2 3 public class Cat extends Pet{ 4 5 @Override 6 public void eat() { 7 System.out.println("猫开始吃鱼!看起来内心毫无波澜!"); 8 9 } 10 11 public void sleep() { 12 System.out.println("猫吃完了!开始睡觉!"); 13 } 14 15 }
1 package com.unit11.test; 2 3 public class Dog extends Pet{ 4 5 @Override 6 public void eat() { 7 System.out.println("狗开始吃骨头!非常凶猛!"); 8 9 } 10 11 }
1 package com.unit11.test; 2 3 public class Master { 4 //pet可以是Pet子类的实例 5 public void feed(Pet pet) { 6 System.out.println("主人开始喂食!"); 7 pet.eat(); 8 9 //instanceof 判断一个对象是否为一个类的实例 10 if(pet instanceof Cat) { 11 System.out.println("传进来的是猫的对象"); 12 Cat cat=(Cat)pet; //向下转型(强制转型)必须保证对象原本就是这个子类 13 cat.sleep(); 14 } 15 } 16 }
1 package com.unit11.test; 2 3 public class test { 4 5 public static void main(String[] args) { 6 Master m=new Master(); 7 Cat c=new Cat(); //向上转型(自动) 8 Dog d=new Dog(); 9 m.feed(c); 10 // m.feed(d); 11 12 } 13 14 }
posted on 2020-06-21 16:25 cherry_ning 阅读(78) 评论(0) 收藏 举报
浙公网安备 33010602011771号