zoukankan      html  css  js  c++  java
  • 7

    1.多态
           1.1多态:一个失误的多种形态
           1.2多态的表现
            行为(方法)多态:重写和重载
            引用多态(动态绑定):编译时的类型和运行时不一致的这种现象
                         动态绑定
            注意:引用多态存在继承关系
    
            自动类型转换
            char c=10;
            int a=c;
    
            强制类型转换    
            int a=10;
            char c=(char)a;
    
            向上转型
            父类=子类;
            Pet p = new Dog();
    
            向下转型
            子类 =(子类)父类;
            Dog d=(Dog) p;
            
            注意:java.lang.ClassCastException:类型转换异常
                父类的运行时类型跟要转成的子类的类型不一致
    
        1.3 多态【子类就是父类】
             为什么使用多态:
            提高程序可扩展性,可维护性,提高代码可重用性
    
            什么是多态:
            具有表现多种形态能力的特征 同一个实现接口,使用不同的实例而执行不同的操作          

        1.4实现多态的两种形式:
             a.使用父类作为方法形参实现多态
             public void play(F p){...};

             b.使用父类作为方法返回值实现多态
             public F getF(int type){...};

    //子类,圆形
    public class Circular extends Graph {
            private final double X=3.14;        //半径
            
            public Circular(double r){
                super(r);
            }
            
            public void getArea(){
                double m=(super.getLen()*X*X);
                System.out.println("圆的半径为"+super.getLen()+"
    面积为"+m);
            }
    
    
    //子类,长方形
    public class Rectangle extends Graph {
        private double weight;            //宽度
        
        public  Rectangle(double len,double weight){
            super(len);
            this.weight=weight;
        }
        
        public double getWeight(){
            return weight;
        }
        
        public void getArea(){
            double m=(super.getLen()*this.getWeight());
            System.out.println("长方形的长为"+super.getLen()+",宽为"+this.weight+"
    面积为"+m);
        }
    
    
    
    //父类
    public abstract class Graph {
        private double len;            //图形的边长
        
        public Graph(double len){
            this.len=len;
        }
        
        //获取长度
        public double getLen(){
            return len;
        }
        
        //抽象面向方法
        public abstract void getArea();
    }
    View Code
  • 相关阅读:
    java虚拟机之类加载机制
    java虚拟机之垃圾收集器
    java虚拟机之内存模型
    java基础之NIO
    java基础之字符串
    Integer.valueOf源码分析
    将博客搬至CSDN
    url中向后台传递参数中文乱码
    Layui主窗口和Iframe层参数传递
    百度地图Api 加载海量点
  • 原文地址:https://www.cnblogs.com/wojiatingting/p/7015670.html
Copyright © 2011-2022 走看看