`
where
  • 浏览: 80754 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JAVA基础知识之我的理解 2(持续更新中,希望对大家有帮助,共同学习共同进步)

阅读更多
一. 类的继承
下定义:在构造一个新的类时,首先找到一个已有的类,新类在这个已有类的基础上构造,这种特性我们称之为继承,也可以称作派生(derived)。继承使用关键字extends声明。继承出的类称为原来类的子类,而原来类被称为父类
具体继承:1)父类的所有非private属性
        2)父类所有的非private方法
继承的结果:在子类中即使我们没有创建任何属性和方法,他仍会有父类的所有非private属性和方法,换句话在子类中可以直接调用这些方法及属性。
怎么继承:看一个具体的例子
               public class Sudent{
                   属性;
                        方法;
}
public class unStudent extends Student{

}
归纳格式:   public class 子类名 extends 父类名{

}

补充:类的继承具有传递性:如果B是A的子类,C是B的子类,则C是A的子类。

二. 方法的重载与重写

方法的重载:指多个方法具有相同的名字,但是这些方法的参数必须不同(或者是参数的个数不同,或者是参数类型不同,顺序不同)。需要强调的是方法重载是在同一各类内部重载。

      方法的重写:与重载两点不同
1. 重写发生在子类,即子类重写父类的方法
2. 子类重写的方法名字和参数返回类型和父类的方法都一样,方法体可以根据需要进行修改,重载是对参数的修改。
三. 自动转型的实现
自动转型格式:声明父类的变量,创建子类对象,让父类的变量指向子类对象,子类对象类型会自动转型为父类


class A//父类
class B extends A//子类B继承父类
A b = new B();//A对象自动转型为B类型
父类 对象名 = new 子类();
注意:该格式中父类和子类的位子,等式左边是父类右边是子类,一定不能写反。
自动转型后的结果: 1.自动转型后的对象调用父类方法,如果子类重写了此方法,调用的就肯定是重写后的方法
2.如果子类自动转型为父类后,再无法调用到子类所特有的方法
                        举例说明以上两点:
                        现在我们有一个学生类(父类),一个大学生类(类)学生类有一个学习方法,大学生类也有一个重写过的属于他的学习方法,即他所独有的选课方法。
                        现在我们将大学生类自动转型为学生类,那么结果是:
                        1.转型后的大学生调用学习方法仍是重写过的大学生学习方法。

                        2.  转型后的大学生不能再选课。

四. 多态的概念和理解
多态的概念:将参数定义为一个父类,各子类中都重写了父类的方法,在方法中用传入的父类对象调用这个方法。当传入什么子类时就会调用相应的各子类的方法。这就是多态。即同一个类型的对象调用方法名一样而结果不一样的情况称为多态
多态的理解:导致多态的直接原因是方法的重写,而方法的重写发生在类的继承
多态的结果:同一个类型的对象调用同一名字的方法但结果不一样
五. 浅谈类,接口,抽象类的理解
类的定义前面已经说过就不再赘述重点说一下接口和抽象类。
接口的概念:接口(interface)是抽象方法和常量值定义的集合,这个概念咋一看我们一定会想到类的概念,没错他们的确有相似性,类可以理解是方法和属性的集合嘛,但接口和类是不同的,不同点体现在以下两点:
1) 从属性方面看
类的属性定义既可以是变量也可以是常量,接口属性定义只能是常量(可以通过初始化实现);
类属性的权限可以是:public protected private而接口属性的权限只能是:public;
有代码有真相
类的属性 string name;
接口的属性 public static final double PI=3.1415926;
2) 从方法方面看
我们都知道普通类的方法都是有方法体的,而接口恰恰相反,接口的方法一定不可以有方法体。通常这类方法我们称之为抽象方法。也正是由于这个原因,接口不能定义对象。
上真相:
普通类的方法:public void study() {

       }
接口的方法:public abstract void study();
            提醒:注意接口方法定义时的关键字abstract,当然在接口中你定义方法时可以不写它,但系统会默认为abstract,他表示抽象类方法。还要注意抽象方法必须以“;”结尾。
接口的意义:接口在开发大规模企业应用中起着重要作用。使服务的实现者和使用者最大程度松耦合。使用者可以使用任何遵循接口的实现。
(表示到目前为止比这还没有体会到这一点,因为还是阶段项目做得不是很多,但为了知识体系的相对完整我们先把它放在这,待笔者有了体会再对这部分内容完善)

  抽象类的概念: 抽象类(abstract class)是介于类和接口之间的一种特殊类型,下面我们也将从属性和方法两个方面来看。
1) 从属性方面来看
抽象类属性的定义和类的属性的定义相同;
2) 从方法方面来看
抽象类中不仅包含抽象方法,还可以包括具体数据和方法。也是由于抽象类中有抽象方法所以他也不能定义对象。
抽象类的意义:过渡,接口和普通类间的中介。

“横看成岭侧成峰,远近高低各不同”同一个事物从不同的角度看,看到的风景是不一样的,上面我们是单纯从属性和方法的角度分析了三者,下面我们换一个角度,我们从继承的角度看三者的关系。
1) 类继承类
这点我们在上面已经讲得很清楚了,不再赘述。
2)类继承接口
上面我们已经知道了接口中的方法均为抽象方法,在类继承接口时必须将接口中所有方法均实现;
一个类可以继承多个接口,这点与类继承类不同;
类继承类关键字为extends,类继承接口时关键字implements;
有代码有真相:
public  class Shape implements NetJavashape
3) 类继承抽象类
     类继承抽象类只需要实现需要用到的方法,不必将每个方法都重写;
     类继承抽象类关键字认为extends;
4) 接口继承接口
接口可以继承接口..但是要使用extends而不是用implements
如:interface a{}
interface b extends a{}
一个接口可以继承多个接口.
interface C extends A, B {}是可以的
   5) 抽象类继承接口
     抽象类继承接口可以只实现要用的方法;
     抽象类继承接口关键字implements
5) 抽象类继承类
抽象类可以继承类,在继承过程中可以把类中的方法重写成抽象方法。
抽象类继承类关键字为extends
有代码有真相:
package test;

public class A {

public void print(){
System.out.println("A");
}
}

package test;

public abstract class B extends A{
public abstract void print();
}

   7)抽象类继承抽象类
抽象类继承抽象了的关键字为extends;
这种情况仅在一下这种情况下发生才有意义,父(抽象)类有一个以上的抽象方法,子(抽象)类只实现了父(抽象)类中的部分抽象方法。
有代码有真相:
Abstract class A{
public void afunction();}
Abstract class B extends A{
}
分享到:
评论
1 楼 清风吹落叶 2012-07-23  
比我强多了  我还没学到这么多呢 谢谢分享 

相关推荐

    全网最齐全的Java面试题库-附答案-持续更新.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    Java面试知识总结.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    Java课堂笔记、代码、java核心知识点梳理、java笔试面试资料.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    【转】技术面试必备基础知识、Leetcode 题解、后端面试、Java 面试、春招、秋招、操作系统、计算机网络、系统设计.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    Java开源项目之「自学编程之路」:学习指南+面试指南+资源分享+技术文章.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    Java 笔试、面试 知识整理.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    『Java八股文』Java面试套路,Java进阶学习,打破内卷拿大厂Offer,升职加薪!.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    java面试中出现的面试题集合,基础集合,面试宝典.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    一份超级详细的Java面试题【大厂面试真题+Java学习指南+工作总结】.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    Java开发者或者大数据开发者面试知识点整理.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    java中高级面试指南.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    一份面向Java初学者和初级工程师的知识点总结和面试题解析,着重关注面试中最常见的知识点。.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    Java interview-高级Java面试题2023.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    Java面试总结.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    Java面试宝典.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    Java面试笔记.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    Java 开发相关技术栈(大中厂)高频面试问题收录。.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    Java面试资源概览2023最新

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

    Java 面试题汇总.zip

    学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...

Global site tag (gtag.js) - Google Analytics