zoukankan      html  css  js  c++  java
  • java面向对象第三章

    w 子类名();

    3.2 方法名(子类对象);

    3.3 方法的返回类型是父类

      访问修饰符 父类名 方法名([参数列表]){

              return 父类对象或子类对象;

      }

    //子类,圆形
    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();
    }

    4、        多态中子类和父类之间的转换

    a) 子类到父类的转换(向上转换)

    父类 对象名 = new 子类();//自动进行转换

    对象名.方法名([值]);

                 向上转换的使用规则【P72】:

    l  父类引用指向子类对象时称为向上转换或转型(upcasting),自动进行类型转换

    l  通过父类引用变量,调用的方法是子类覆盖(重写)或继承父类的方法【选择题1、2】

    l  通过父类引用变量,无法调用子类特有的方法【选择题3】

    b)父类到子类的转换(向下转换)——强制类型转换,还原对象的真实面目(具体是哪种子类)

                     父类 对象名 = new 子类();

                      对象名.子类方法();//编译有错误

           应修改为:

                      父类 对象名 = new 子类();

                      子类 子类对象 =(子类)对象名;

                      子类对象.子类方法();

    //父类
    public abstract class Zhu {
        private String name;    //两者的姓名
        private String food;
        private String nation;
        /**
         * @return the name
         */
        public String getName() {
            return name;
        }
        public String getNation(){
            return nation;
        }
        public Zhu(String name,String food,String nation){
            this.name=name;
            this.food=food;
            this.nation=nation;
        }
        public String getFood(){
            return food;
        }
        public abstract void print();
    }
    
    父类
    //子类
    public class Wang extends Zhu{
        private String habit;    
        public Wang(String name,String habit,String food,String nation){
            super(name,food,nation);
            this.habit=habit;
        }
        public String getHabit(){
            return habit;
        }
        
        public void print(){
            System.out.println("我叫"+super.getName()+",来自"+super.getNation()+",喜欢吃"+this.getFood()+",爱好练"+this.habit);
        }
    }
    
    子类

    a) 子类到父类的转换(向上转换)

    父类 对象名 = new 子类();//自动进行转换

    对象名.方法名([值]);

                 向上转换的使用规则【P72】:

    l  父类引用指向子类对象时称为向上转换或转型(upcasting),自动进行类型转换

    l  通过父类引用变量,调用的方法是子类覆盖(重写)或继承父类的方法【选择题1、2】

    l  通过父类引用变量,无法调用子类特有的方法【选择题3】

    b)父类到子类的转换(向下转换)——强制类型转换,还原对象的真实面目(具体是哪种子类)

                     父类 对象名 = new 子类();

                      对象名.子类方法();//编译有错误

           应修改为:

                      父类 对象名 = new 子类();

                      子类 子类对象 =(子类)对象名;

                      子类对象.子类方法();

     父类
     子类
    复制代码
    //子类
    public class YueHan extends Zhu{
        private String habit;
        
        public YueHan(String name,String habit,String food,String nation){
            super(name,food,nation);
            this.habit=habit;
            
        }
        
        public String gethabit(){
            return habit;
        }
        
        public void print(){
            System.out.println("我叫"+super.getName()+",来自"+super.getNation()+",喜欢吃"+this.getFood()+",爱好是打"+this.gethabit());
        }
    }
  • 相关阅读:
    “Clang” CFE Internals Manual---中文版---"Clang"C语言前端内部手册
    LLVM每日谈之十七 LLVM/Clang的学习的思考
    Using Clang as a Library----Choosing the Right Interface for Your Application---翻译
    IT人员必备技能之Over the Wall.
    离散傅立叶变换之听声音破解电话号码
    Google Summer of Code: C++ Modernizer Improvements----Monday, November 18, 2013
    Design: cpp11-migrate
    C++11 迁移器的状态--2013年4月15日
    购物系统③完结篇
    (转)Eclipse中junit框架的使用——单元测试
  • 原文地址:https://www.cnblogs.com/yjx4671/p/7019547.html
Copyright © 2011-2022 走看看