• 学习java随笔第八篇:封装、继承、多态


    java和c#一样都是面向对象的语言。

    面向对象的语言有三大特征:封装、继承、多态

    封装

     封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。

    class Person2
    {
        private String name;
        public void setName(String name)
        {
                this.name=name;
        }
        public String getName()
        {
            return name;
        }
        
        private String sex;
        public void setSex(String sex)
        {
                this.sex=sex;
        }
        public String getSex()
        {
            return sex;
        }
        
        private int age;
        public void setAge(int age)
        {
                this.age=age;
        }
        public int getAge()
        {
            return age;
        }    
        
        private double height;
        public void setHeight(double height)
        {
            this.height=height;
        }
        public double getHeight()
        {
            return height;
        }    
    }
    
    public class Person1 {
        public static void main(String arges[])
        {
            Person2 p2=new Person2();
            p2.setName("小黄");
            p2.setSex("男");
            p2.setAge(20);
            p2.setHeight(1.70);
            System.out.println("姓名:"+p2.getName()+",性别:"+p2.getSex()+",年龄:"+p2.getAge()+",身高:"+p2.getHeight());
        }
    }

    继承

    继承:发生在类与类之间,在已存在的类的基础之上进行继承,通过继承来共享父类的成员和方法,并加入新的方法。可以单继承,也可以多继承。

    在Java中,被继承的类叫超类(superclass),继承超类的类叫子类(subclass)。因此,子类是超类的一个功能上的扩展,它继承了超类定义的所有属性和方法,并且添加了特有功能方法。

    class Father
    {
        public String name;
        public int age;
        public String eye;
        public String height;
        public String cutis;
        //Father类的构造器
        public Father()
        {
            
        }
        
        public Father(String name,int age)
        {
            this.name=name;
            this.age=age;
        }
        //重写Object类中的toString方法
        /*public String toString()
        {
            String emp="姓名:"+name+",年龄:"+age;
            return emp;
        }*/
    }
    
    public class son extends Father
    {
        public String spectacle_frame;
        public son()
        {
            
        }
        public son(String spectacle_frame)
        {
            this.spectacle_frame=spectacle_frame;
        }
        
        public void getMes()
        {
            System.out.println(spectacle_frame);
        }
        public static void main(String arges[])
        {
            Father f=new Father("Father",50);
            System.out.println(f);
            son s=new son("Blue");
            s.name="Tom";
            s.age=20;
            System.out.println(s);
            s.getMes();
        }
    }
    注释:重写Object类中的toString方法

    取消注释:重写Object类中的toString方法

    多态

     多态:接口的多种不同的实现方式即为多态,同一个实体同时具有多种形式。

    class fruit
    {
        public void getMes()
        {
            System.out.println("父类");
        }
    }
    
    class apple extends fruit
    {
        public void getMes()
        {
            System.out.println("apple子类");
        }
    }
    
    class orange extends fruit
    {
        public void getMes()
        {
            System.out.println("orange子类");
        }
    }
    
    public class racing_cycel {
        public void show(fruit f)
        {
            f.getMes();
        }
        
        public static void main(String arges[])
        {
            racing_cycel rc=new racing_cycel();
            fruit f=new fruit();
            apple a=new apple();
            orange o=new orange();
            
            rc.show(f);
            rc.show(a);
            rc.show(o);
        }
    }

    运行结果

  • 相关阅读:
    VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题
    C++中的预处理命令 .
    C++ sizeof用法 .
    详解C/C++预处理器 .
    C 风格字符串,C++string类,MFC,CString类的区别。
    VC: GDI绘图基本步骤总结 .
    关于字符数组 和 字符串比较 C++
    they're hiring
    HTTP Proxy Server
    Polipo
  • 原文地址:https://www.cnblogs.com/langmanshuyuan/p/3774761.html
Copyright © 2020-2023  润新知