zoukankan      html  css  js  c++  java
  • java之day8多态

    多态

    package day8;
    
    public abstract class Instrument {
        public abstract void play();
    }
    package day8;
    
    public class Piano extends Instrument{
    
        @Override
        public void play() {
            // TODO Auto-generated method stub
            System.out.println("yueguangqu");
        }
    }
    package day8;
    
    public class Violin extends Instrument{
        
        public void play() {
            // TODO Auto-generated method stub
            System.out.println("风吹麦浪");
        }
    }
    package day8;
    
    //多态类题型:
    //使用继承
    //子类重写父类的方法
    //父类引用子类对象
    
    public class Artist {
    //    public void make(Piano piano){
    //        piano.play();
    //    }
    //    public void make(Violin violin){
    //        violin.play();
    //    }
        
        public void make(Instrument instrument){
            instrument.play();
        }
    }
    package day8;
    
    public class Test {
        public static void main(String[] args) {
            Artist artist = new Artist();
            Piano piano = new Piano();
            artist.make(piano);
            Violin violin = new Violin();
            artist.make(violin);
        }
    }

    ================================================================================================================

    接口

    package day83;
    
    public interface InterfaceDemo {
        //1:接口不能被实例化
        //2:接口里的方法默认都是public类型的抽象方法
        //所有public abstract修饰可以忽略
        //3:类是单继承,但是类可以实现多个接口
        //4:在接口里定义的属性都是public类型的静态常量
        //public static final都是可以省略的
        //5:接口可以继承多个接口,可以得到父级接口里所有的属性和方法
        
        public abstract void showName();
        
        public static final int AGE = 10;
    }
    package day83;
    
    public interface InterfaceDemo2 {
        void showName2(); 
    }
    package day83;
    
    public abstract class Father {
        public abstract void showFatherName();
    }
    package day83;
    
    public abstract class Father2 {
        public abstract void showFatherName2();
    }
    package day83;
    
    public interface ChildInterface extends InterfaceDemo,InterfaceDemo2{
    
    }
    package day83;
    
    import java.nio.channels.ShutdownChannelGroupException;
    
    public class Test extends Father implements InterfaceDemo,InterfaceDemo2{
        public static void main(String[] args) {
    //        Interface demo = new InterfaceDemo();是不可以的
            Test test = new Test();
            
        }
        @Override
        public void showName() {
            // TODO Auto-generated method stub
            
        }
        @Override
        public void showName2() {
            // TODO Auto-generated method stub
            
        }
        @Override
        public void showFatherName() {
            // TODO Auto-generated method stub
            
        }
    }

    =======================================================================================================

    综合类

    package day86;
    
    public class A4Paper implements Paper{
    
        @Override
        public void pageSize() {
            System.out.println("使用A4纸!");
        }
    
    }
    package day86;
    
    public class B5Paper implements Paper{
        @Override
        public void pageSize() {
            System.out.println("使用B5纸!");
        }
    }
    package day86;
    
    public class BlackInk implements Ink{
    
        @Override
        public void inkColor() {
            System.out.println("使用黑白墨!");
        }
    
    }
    package day86;
    
    public class ColorInk implements Ink{
    
        @Override
        public void inkColor() {
            System.out.println("使用彩墨!");
        }
    
    }
    package day86;
    
    public interface Ink {
        void inkColor();
    }
    package day86;
    
    public interface Paper {
        void pageSize();
    }
    package day86;
    
    public class Printer {
        public Ink ink;
        public Paper paper;
        public void print(String content){
            ink.inkColor();
            paper.pageSize();
            System.out.println(content);
        }
        public static void main(String[] args) {
            Printer printer = new Printer();
            printer.ink = new BlackInk();
            printer.paper = new A4Paper();
            printer.print("我是打印内容!");
            
        }
        
    }
  • 相关阅读:
    java JSONObject
    android 8.0 悬浮窗 最简demo
    使用adb 命令(atrace)抓起systrace的方法。
    使用python处理selenium中的获取元素属性
    使用adb/Linux获取网关ip
    Requests text乱码
    python-uiautomator2
    adb命令 判断锁屏
    缓存穿透、缓存击穿与缓存雪崩
    ReentrantLock重入锁详解
  • 原文地址:https://www.cnblogs.com/haloxinghong/p/7425552.html
Copyright © 2011-2022 走看看