前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java基础-面向对象(四)

Java基础-面向对象(四)

作者头像
cwl_java
发布2019-11-12 12:56:07
2790
发布2019-11-12 12:56:07
举报
文章被收录于专栏:cwl_Java

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42528266/article/details/102949627

super关键字
  • super是直接父类对象的引用。
  • 可以通过super来访问父类中被子类覆盖的方法或属性。
继承
  • 父类方法的重写:
    • “==”:方法名、形参列表相同。 = “≤≤”:返回值类型和异常类型,子类小于等于父类。
    • “≥”:访问权限,子类大于等于父类
  • 构造方法调用顺序:
    • 根据super的说明,构造方法第一句 总是:super(…)来调用父类对应的构造方法。
    • 先向上追溯到Object,然后再依次向下执行类的初始化块和构造方法,直到当前子类为止。

代码示例

代码语言:javascript
复制
package com.cwl.base.day03.oop;

/**
 * @program: java_base
 * @description:
 * @author: ChenWenLong
 * @create: 2019-11-07 10:42
 **/
public class TestExtends {

    public static void main(String[] args) {
        Student   stu  =  new Student();
        stu.name="ChenWenLong";
        stu.height = 172;
        stu.rest();

        Student  stu2 = new Student("希希",6,"挖掘机专业");

        System.out.println(stu2   instanceof  Student);
        System.out.println(stu2   instanceof   Person );
        System.out.println(stu2   instanceof   Object );
        System.out.println(new Person()   instanceof   Student );

    }
}

class  Person   /*extends  Object*/ {
    String  name;
    int   height;

    public void  rest(){
        System.out.println("休息一会!");
    }
}

class  Student   extends  Person  {
    String   major;

    public   void   study(){
        System.out.println("学习两小时!");
    }

    public  Student(String name,int height, String  major){
        this.name = name;
        this.height = height;
        this.major = major;
    }

    public Student(){
    }


}
对象的比较—==和equals()
  • ==
    • 比较两基本类型变量的值是否相等
    • 比较两个引用类型的值即内存地址是否相等,即是否指向同一对象。
  • equals()
    • 两对象的内容是否一致

代码示例

代码语言:javascript
复制
package com.cwl.base.day03.oop;

/**
 * @program: java_base
 * @description:
 * @author: ChenWenLong
 * @create: 2019-11-07 10:39
 **/
public class TestEquals {
    public static void main(String[] args) {
        Object obj;
        String str;

        User u1 = new User(1000,"***","123456");
        User   u2 = new User(1000,"***","123456");

        System.out.println(u1==u2);
        System.out.println(u1.equals(u2));

        String  str1 = new String("***");
        String  str2 = new String("***");
        System.out.println(str1==str2);  //false
        System.out.println(str1.equals(str2));  //true

    }
    
}

class  User  {
    int id;
    String name;
    String pwd;

    public User(int id, String name, String pwd) {
        super();
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + id;
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        User other = (User) obj;
        if (id != other.id)
            return false;
        return true;
    }



}
多态 polymorphism
  • 多态性是OOP中的一个重要特性,主要是用来实现动态联编的,换句话说,就是程序的最终状态只有 在执行过程中才被决定而非在编译期间就决定了。这对于大型系统来说能提高系统的灵活性和扩展 性。
  • java中如何实现多态?使用多态的好处?
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/11/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • super关键字
  • 继承
  • 对象的比较—==和equals()
  • 多态 polymorphism
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档