<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Java基础教程 &#8211; FoxDevelop</title>
	<atom:link href="https://www.foxdevelop.com/zh/category/java/java%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.foxdevelop.com</link>
	<description>独立软件开发工作室</description>
	<lastBuildDate>Wed, 23 Sep 2026 10:12:35 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://www.foxdevelop.com/wp-content/uploads/2026/05/fox-svgrepo-com-1.png</url>
	<title>Java基础教程 &#8211; FoxDevelop</title>
	<link>https://www.foxdevelop.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>多态-接口-抽象类</title>
		<link>https://www.foxdevelop.com/zh/2026/09/23/%e5%a4%9a%e6%80%81-%e6%8e%a5%e5%8f%a3-%e6%8a%bd%e8%b1%a1%e7%b1%bb/</link>
					<comments>https://www.foxdevelop.com/zh/2026/09/23/%e5%a4%9a%e6%80%81-%e6%8e%a5%e5%8f%a3-%e6%8a%bd%e8%b1%a1%e7%b1%bb/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Wed, 23 Sep 2026 10:12:34 +0000</pubDate>
				<category><![CDATA[Java基础教程]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=11920</guid>

					<description><![CDATA[多态 多态-一个行为多种状态。比如打篮球 打羽毛球 同样是打 ...]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">多态</h3>



<p class="wp-block-paragraph">多态-一个行为多种状态。比如打篮球 打羽毛球 同样是打 但是动作规则完全不一样。</p>



<p class="wp-block-paragraph">java里面的多态也是类似。</p>



<ul class="wp-block-list">
<li>子类继承父类</li>



<li>父类引用指向子类对象</li>



<li>子类重写了父类方法</li>
</ul>



<p class="wp-block-paragraph">当使用父类引用调用被重写的方法时，实际执行的是子类的方法，这就是多态。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Father</span> </span>{
    <span class="hljs-keyword">void</span> say() {
        System.out.println(<span class="hljs-string">"Father say"</span>);
    }
}

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Son</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Father</span> </span>{
    @Override
    <span class="hljs-keyword">void</span> say() {
        System.out.println(<span class="hljs-string">"Son say"</span>);
    }
}

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Daughter</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Father</span> </span>{
    @Override
    <span class="hljs-keyword">void</span> say() {
        System.out.println(<span class="hljs-string">"Daughter say"</span>);
    }
}

public <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Test</span> </span>{
    public <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> main(<span class="hljs-built_in">String</span>&#91;] args) {
        Father f1 = <span class="hljs-keyword">new</span> Son();
        Father f2 = <span class="hljs-keyword">new</span> Daughter();
        f1.say(); <span class="hljs-comment">// 输出 Son say</span>
        f2.say(); <span class="hljs-comment">// 输出 Daughter say</span>
    }
}</code></span></pre>


<h3 class="wp-block-heading">抽象类</h3>



<p class="wp-block-paragraph">把方法的实现部分去掉，直接以分号结束，增加<code>abstract</code>修饰符，就构成了抽象方法。</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-keyword">public</span> <span class="hljs-keyword">abstract</span> void talk();</code></span></pre>


<p class="wp-block-paragraph">抽象方法就是为了重写的。就是我自己不实现，交给子类去实现。</p>



<p class="wp-block-paragraph">当一个类含有抽象方法的时候，则该类必须声明为抽象类。抽象类不能被实例化，需增加<code>abstract</code>修饰符。</p>



<p class="wp-block-paragraph">抽象方法只需要声明，而不需要实现。</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-keyword">abstract</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Animal</span> </span>{
    <span class="hljs-keyword">public</span> <span class="hljs-keyword">abstract</span> void talk();

    <span class="hljs-keyword">public</span> void sleep() {
        System.out.println(<span class="hljs-string">"sleeping"</span>);
    }
}

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Dog</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Animal</span> </span>{
    @Override
    <span class="hljs-keyword">public</span> void talk() {
        System.out.println(<span class="hljs-string">"汪汪"</span>);
    }
}</code></span></pre>


<h3 class="wp-block-heading">Final关键字</h3>



<p class="wp-block-paragraph"><code>final</code>的变量的值不能够被改变</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">A</span></span>{
    <span class="hljs-keyword">final</span> int i = <span class="hljs-number">9</span>;
}

A a = <span class="hljs-keyword">new</span> A();
<span class="hljs-comment">// a.i = 3; // 编译出错</span></code></span></pre>


<p class="wp-block-paragraph"><code>final</code>的方法不能够被重写</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Father</span> </span>{
    final <span class="hljs-keyword">void</span> method() {}
}

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Son</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Father</span> </span>{
    <span class="hljs-comment">// void method() {} // 编译出错，不能重写final方法</span>
}</code></span></pre>


<p class="wp-block-paragraph"><code>final</code>的类不能够被继承</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-keyword">final</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Father</span> </span>{}

<span class="hljs-comment">// class Son extends Father {} // 编译出错，不能继承final类</span></code></span></pre>


<h3 class="wp-block-heading">接口</h3>



<p class="wp-block-paragraph">接口是抽象方法和常量值的集合。</p>



<p class="wp-block-paragraph">从本质上讲，接口是一种特殊的抽象类，这种抽象类中只包含常量和方法的定义，而没有变量和方法的实现。</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">IAnimal</span> </span>{
    <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">final</span> int id = <span class="hljs-number">1</span>;

    <span class="hljs-keyword">public</span> void run();
    <span class="hljs-keyword">public</span> void eat();
}</code></span></pre>


<p class="wp-block-paragraph">接口可以多重实现，也就是变相的多重继承。</p>



<p class="wp-block-paragraph">接口成员变量只能是<code>public static final</code>，就算不写也是这个。</p>



<p class="wp-block-paragraph">接口只能定义抽象方法，默认是<code>public abstract</code>，也只能是<code>public abstract</code>。</p>



<p class="wp-block-paragraph">接口可以继承其他接口，并添加新的属性和抽象方法。</p>



<p class="wp-block-paragraph">实现接口需要用<code>implements</code>。</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">IAnimal</span> </span>{
    int id = <span class="hljs-number">1</span>; <span class="hljs-comment">// 默认 public static final</span>
    void run(); <span class="hljs-comment">// 默认 public abstract</span>
    void eat();
}

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Dog</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">IAnimal</span> </span>{
    @Override
    <span class="hljs-keyword">public</span> void run() {
        System.out.println(<span class="hljs-string">"dog run"</span>);
    }

    @Override
    <span class="hljs-keyword">public</span> void eat() {
        System.out.println(<span class="hljs-string">"dog eat"</span>);
    }
}

<span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">IHuman</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">IAnimal</span> </span>{
    void speak();
}</code></span></pre>]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh/2026/09/23/%e5%a4%9a%e6%80%81-%e6%8e%a5%e5%8f%a3-%e6%8a%bd%e8%b1%a1%e7%b1%bb/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>object的一些内置函数</title>
		<link>https://www.foxdevelop.com/zh/2026/09/23/object%e7%9a%84%e4%b8%80%e4%ba%9b%e5%86%85%e7%bd%ae%e5%87%bd%e6%95%b0/</link>
					<comments>https://www.foxdevelop.com/zh/2026/09/23/object%e7%9a%84%e4%b8%80%e4%ba%9b%e5%86%85%e7%bd%ae%e5%87%bd%e6%95%b0/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Wed, 23 Sep 2026 10:11:45 +0000</pubDate>
				<category><![CDATA[Java基础教程]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=11917</guid>

					<description><![CDATA[toString方法 Object类中定义了toString ...]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">toString方法</h3>



<p class="wp-block-paragraph">Object类中定义了<code>toString()</code>方法，返回对象的字符串表示。默认返回的是类名@哈希码的十六进制形式。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">public <span class="hljs-built_in">String</span> toString() {
    <span class="hljs-keyword">return</span> getClass().getName() + <span class="hljs-string">"@"</span> + Integer.toHexString(hashCode());
}</code></span></pre>


<p class="wp-block-paragraph">当使用<code>System.out.println(对象)</code>时，会自动调用该对象的<code>toString()</code>方法。</p>



<p class="wp-block-paragraph">实际开发中通常会重写<code>toString()</code>方法，返回更有意义的对象信息。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Student</span> </span>{
    <span class="hljs-built_in">String</span> name;
    int age;

    @Override
    public <span class="hljs-built_in">String</span> toString() {
        <span class="hljs-keyword">return</span> <span class="hljs-string">"Student{name='"</span> + name + <span class="hljs-string">"', age="</span> + age + <span class="hljs-string">"}"</span>;
    }
}</code></span></pre>


<h3 class="wp-block-heading">hashcode方法</h3>



<p class="wp-block-paragraph"><code>hashCode()</code>方法返回对象的哈希码值，是一个<code>int</code>类型的值。</p>



<p class="wp-block-paragraph">同一个对象在程序的一次执行期间，多次调用<code>hashCode()</code>应当返回相同的整数，前提是对象中用于<code>equals</code>比较的信息没有被修改。</p>



<p class="wp-block-paragraph">如果根据<code>equals()</code>方法两个对象相等，那么对这两个对象分别调用<code>hashCode()</code>应当产生相同的整数结果。</p>



<p class="wp-block-paragraph">如果重写了<code>equals()</code>方法，通常也需要重写<code>hashCode()</code>方法，以保持<code>equals</code>相等则<code>hashCode</code>相等的约定。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Student</span> </span>{
    <span class="hljs-built_in">String</span> name;
    int age;

    @Override
    public int hashCode() {
        int result = name != <span class="hljs-literal">null</span> ? name.hashCode() : <span class="hljs-number">0</span>;
        result = <span class="hljs-number">31</span> * result + age;
        <span class="hljs-keyword">return</span> result;
    }
}</code></span></pre>


<h3 class="wp-block-heading">equals方法</h3>



<p class="wp-block-paragraph"><code>equals()</code>方法用于判断两个对象是否相等。Object类中的默认实现是比较对象引用是否指向同一个内存地址。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">public boolean equals(<span class="hljs-built_in">Object</span> obj) {
    <span class="hljs-keyword">return</span> (<span class="hljs-keyword">this</span> == obj);
}</code></span></pre>


<p class="wp-block-paragraph">实际开发中通常需要重写<code>equals()</code>方法，根据对象的属性来判断逻辑上的相等性。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Student</span> </span>{
    <span class="hljs-built_in">String</span> name;
    int age;

    @Override
    public boolean equals(<span class="hljs-built_in">Object</span> obj) {
        <span class="hljs-keyword">if</span> (<span class="hljs-keyword">this</span> == obj) <span class="hljs-keyword">return</span> <span class="hljs-literal">true</span>;
        <span class="hljs-keyword">if</span> (obj == <span class="hljs-literal">null</span> || getClass() != obj.getClass()) <span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;
        Student student = (Student) obj;
        <span class="hljs-keyword">return</span> age == student.age &amp;&amp; name.equals(student.name);
    }
}</code></span></pre>


<h3 class="wp-block-heading">对象转型</h3>



<p class="wp-block-paragraph">一个基类的引用可以指向子类对象</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">Father f = <span class="hljs-keyword">new</span> Son();</code></span></pre>


<p class="wp-block-paragraph">一个基类的引用不可以访问其子类对象新增的成员，包括属性和方法。</p>



<p class="wp-block-paragraph">可以使用引用变量<code>instanceof</code>类名来判断该类型变量所指向的对象是否属于该类或者该类的子类</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">Son s = <span class="hljs-keyword">new</span> Son();
boolean b = s <span class="hljs-keyword">instanceof</span> Father; <span class="hljs-comment">// true</span></code></span></pre>


<p class="wp-block-paragraph">子类对象可以当作基类的对象来使用称为向上转型，反之称为向下转型。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">Father f = <span class="hljs-keyword">new</span> Son(); <span class="hljs-comment">// 向上转型，自动完成</span>
Son s2 = (Son) f;     <span class="hljs-comment">// 向下转型，需要强制类型转换</span></code></span></pre>


<p class="wp-block-paragraph">向下转型前通常需要先用<code>instanceof</code>判断，否则可能出现<code>ClassCastException</code>。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">Father f = <span class="hljs-keyword">new</span> Son();
<span class="hljs-keyword">if</span> (f <span class="hljs-keyword">instanceof</span> Son) {
    Son s = (Son) f;
}</code></span></pre>]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh/2026/09/23/object%e7%9a%84%e4%b8%80%e4%ba%9b%e5%86%85%e7%bd%ae%e5%87%bd%e6%95%b0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Object类</title>
		<link>https://www.foxdevelop.com/zh/2026/09/23/object%e7%b1%bb/</link>
					<comments>https://www.foxdevelop.com/zh/2026/09/23/object%e7%b1%bb/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Wed, 23 Sep 2026 10:11:06 +0000</pubDate>
				<category><![CDATA[Java基础教程]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=11914</guid>

					<description><![CDATA[Object类是所有java类的根基类 如果在类的声明中未使 ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Object类是所有java类的根基类</p>



<p class="wp-block-paragraph">如果在类的声明中未使用extends关键字，则其基类默认是Object类。</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Student</span></span>{

}</code></span></pre>


<p class="wp-block-paragraph">等价于</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Student</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Object</span> </span>{

}</code></span></pre>


<p class="wp-block-paragraph">Object类提供了一些常用方法，比如<code>toString()</code>、<code>equals()</code>等，这些方法可以被子类继承或重写。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Student</span> </span>{
    <span class="hljs-built_in">String</span> name;
    int age;

    @Override
    public <span class="hljs-built_in">String</span> toString() {
        <span class="hljs-keyword">return</span> <span class="hljs-string">"Student{name='"</span> + name + <span class="hljs-string">"', age="</span> + age + <span class="hljs-string">"}"</span>;
    }

    @Override
    public boolean equals(<span class="hljs-built_in">Object</span> obj) {
        <span class="hljs-keyword">if</span> (<span class="hljs-keyword">this</span> == obj) <span class="hljs-keyword">return</span> <span class="hljs-literal">true</span>;
        <span class="hljs-keyword">if</span> (obj == <span class="hljs-literal">null</span> || getClass() != obj.getClass()) <span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;
        Student student = (Student) obj;
        <span class="hljs-keyword">return</span> age == student.age &amp;&amp; name.equals(student.name);
    }
}</code></span></pre>]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh/2026/09/23/object%e7%b1%bb/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>super的使用</title>
		<link>https://www.foxdevelop.com/zh/2026/09/23/super%e7%9a%84%e4%bd%bf%e7%94%a8/</link>
					<comments>https://www.foxdevelop.com/zh/2026/09/23/super%e7%9a%84%e4%bd%bf%e7%94%a8/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Wed, 23 Sep 2026 10:10:41 +0000</pubDate>
				<category><![CDATA[Java基础教程]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=11911</guid>

					<description><![CDATA[当父类和子类中存在同名的成员变量时，可以通过super关键字 ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">当父类和子类中存在同名的成员变量时，可以通过<code>super</code>关键字在子类中引用父类的成员，以区分父子类中同名的变量。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Father</span> </span>{
    public int number = <span class="hljs-number">10</span>;
}

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Son</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Father</span> </span>{
    public int number = <span class="hljs-number">20</span>;

    <span class="hljs-keyword">void</span> show() {
        System.out.println(number);       <span class="hljs-comment">// 子类自己的number，输出20</span>
        System.out.println(<span class="hljs-keyword">super</span>.number); <span class="hljs-comment">// 父类的number，输出10</span>
    }
}</code></span></pre>


<p class="wp-block-paragraph">子类的构造函数中，需要调用父类的构造函数来完成父类部分的初始化。</p>



<p class="wp-block-paragraph">可以使用<code>super(参数)</code>来显式调用父类的构造函数，也可以使用<code>this(参数)</code>来调用子类自身的其他构造函数。</p>



<p class="wp-block-paragraph">注意：<code>super()</code>调用父类构造函数时，必须放在子类构造函数体的第一行。</p>



<p class="wp-block-paragraph">另外，如果子类的构造函数中没有显式调用父类的构造函数，则系统会默认调用基类的无参构造函数。</p>



<p class="wp-block-paragraph">如果子类的构造函数没有显式调用父类的构造函数，而基类中又没有定义无参构造函数（比如基类只定义了带参构造函数），则编译会出错。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Father</span> </span>{
    public int number;

    Father(int n) {
        number = n;
    }
}

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Son</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Father</span> </span>{
    Son() {
        <span class="hljs-comment">// 编译出错：没有显式调用父类构造函数，且父类没有无参构造函数</span>
        <span class="hljs-comment">// 必须显式调用 super(参数)</span>
    }

    Son(int n) {
        <span class="hljs-keyword">super</span>(n); <span class="hljs-comment">// 正确：显式调用父类带参构造函数</span>
    }
}</code></span></pre>]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh/2026/09/23/super%e7%9a%84%e4%bd%bf%e7%94%a8/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>方法的重写</title>
		<link>https://www.foxdevelop.com/zh/2026/09/23/%e6%96%b9%e6%b3%95%e7%9a%84%e9%87%8d%e5%86%99/</link>
					<comments>https://www.foxdevelop.com/zh/2026/09/23/%e6%96%b9%e6%b3%95%e7%9a%84%e9%87%8d%e5%86%99/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Wed, 23 Sep 2026 10:10:13 +0000</pubDate>
				<category><![CDATA[Java基础教程]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=11908</guid>

					<description><![CDATA[在子类中可以根据需要对基类中继承过来的方法进行重写 重写方法 ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">在子类中可以根据需要对基类中继承过来的方法进行重写</p>



<p class="wp-block-paragraph">重写方法必须和被重写方法具有相同方法名称，参数列表和返回类型。</p>



<p class="wp-block-paragraph">重写方法不能使用比被重写方法更严格的访问权限。</p>



<p class="wp-block-paragraph">一个person 类 有一个showinfo方法 显示姓名和年龄</p>



<p class="wp-block-paragraph">一个student类 从person中继承</p>



<p class="wp-block-paragraph">重写它的showinfo方法，显示姓名 年龄 还有学校名称。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Person</span> </span>{
    <span class="hljs-built_in">String</span> name;
    int age;

    <span class="hljs-keyword">void</span> showInfo() {
        System.out.println(<span class="hljs-string">"姓名："</span> + name + <span class="hljs-string">"，年龄："</span> + age);
    }
}

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Student</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Person</span> </span>{
    <span class="hljs-built_in">String</span> school;

    @Override
    <span class="hljs-keyword">void</span> showInfo() {
        System.out.println(<span class="hljs-string">"姓名："</span> + name + <span class="hljs-string">"，年龄："</span> + age + <span class="hljs-string">"，学校："</span> + school);
    }
}</code></span></pre>]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh/2026/09/23/%e6%96%b9%e6%b3%95%e7%9a%84%e9%87%8d%e5%86%99/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>访问控制</title>
		<link>https://www.foxdevelop.com/zh/2026/09/23/%e8%ae%bf%e9%97%ae%e6%8e%a7%e5%88%b6/</link>
					<comments>https://www.foxdevelop.com/zh/2026/09/23/%e8%ae%bf%e9%97%ae%e6%8e%a7%e5%88%b6/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Wed, 23 Sep 2026 10:09:48 +0000</pubDate>
				<category><![CDATA[Java基础教程]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=11905</guid>

					<description><![CDATA[java的权限修饰符有public、protected、pr ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">java的权限修饰符有<code>public</code>、<code>protected</code>、<code>private</code>，置于类的成员定义前，用于限定其他对象对该类对象成员的访问权限。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>修饰符</th><th>类内部</th><th>同一个包</th><th>子类</th><th>任何地方</th></tr></thead><tbody><tr><td>private</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td></tr><tr><td>default</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td></tr><tr><td>protected</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td></tr><tr><td>public</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">以上是成员变量和成员方法的访问修饰符。</p>



<p class="wp-block-paragraph">对于class的权限修饰只有<code>public</code>和<code>default</code>：</p>



<ul class="wp-block-list">
<li><code>public</code>类可以在任意地方被访问</li>



<li><code>default</code>类只可以被同一个包内部的类访问</li>
</ul>



<p class="wp-block-paragraph">不管是哪种，要访问一个类都需要<code>import</code>或者写全名。如果是<code>default</code>，则跨包后就无法访问。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh/2026/09/23/%e8%ae%bf%e9%97%ae%e6%8e%a7%e5%88%b6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>类的继承</title>
		<link>https://www.foxdevelop.com/zh/2026/09/23/%e7%b1%bb%e7%9a%84%e7%bb%a7%e6%89%bf/</link>
					<comments>https://www.foxdevelop.com/zh/2026/09/23/%e7%b1%bb%e7%9a%84%e7%bb%a7%e6%89%bf/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Wed, 23 Sep 2026 10:09:19 +0000</pubDate>
				<category><![CDATA[Java基础教程]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=11902</guid>

					<description><![CDATA[java中使用extends关键字实现继承。 通过继承，子类 ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">java中使用extends关键字实现继承。</p>



<p class="wp-block-paragraph">通过继承，子类自动拥有了基类的所有成员。</p>



<p class="wp-block-paragraph">java只支持单继承，不允许多继承。</p>



<p class="wp-block-paragraph">一个子类只能有一个父类。 一个类可以被多个子类继承。</p>



<p class="wp-block-paragraph">java里面使用extends 来实现继承。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Son</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Father</span></span>{

}</code></span></pre>


<p class="wp-block-paragraph">什么什么是一种什么东西。那么这个就是继承关系。</p>



<p class="wp-block-paragraph">比如：学生是一个人，那么学生就继承人类。</p>



<p class="wp-block-paragraph">狗是一个动物，那么狗就继承动物类。</p>



<p class="wp-block-paragraph">在实际开发中，如果A是一个B，就可以使用继承来设计。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh/2026/09/23/%e7%b1%bb%e7%9a%84%e7%bb%a7%e6%89%bf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>RT.JAR介绍</title>
		<link>https://www.foxdevelop.com/zh/2026/09/23/rt-jar%e4%bb%8b%e7%bb%8d/</link>
					<comments>https://www.foxdevelop.com/zh/2026/09/23/rt-jar%e4%bb%8b%e7%bb%8d/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Wed, 23 Sep 2026 10:08:06 +0000</pubDate>
				<category><![CDATA[Java基础教程]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=11899</guid>

					<description><![CDATA[java中的一些主要的包 是sun公司提供的 比如 java ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">java中的一些主要的包 是sun公司提供的</p>



<p class="wp-block-paragraph">比如 java.lang</p>



<p class="wp-block-paragraph">java.awt</p>



<p class="wp-block-paragraph">java.net</p>



<p class="wp-block-paragraph">java.io</p>



<p class="wp-block-paragraph">java.util</p>



<p class="wp-block-paragraph">我们也可以把我们的类打包到一个包。</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">jar</span> <span class="hljs-selector-tag">-cvf</span>  <span class="hljs-selector-tag">xxx</span><span class="hljs-selector-class">.jar</span> *.*</code></span></pre>]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh/2026/09/23/rt-jar%e4%bb%8b%e7%bb%8d/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>package和import语句</title>
		<link>https://www.foxdevelop.com/zh/2026/09/23/package%e5%92%8cimport%e8%af%ad%e5%8f%a5/</link>
					<comments>https://www.foxdevelop.com/zh/2026/09/23/package%e5%92%8cimport%e8%af%ad%e5%8f%a5/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Wed, 23 Sep 2026 10:07:38 +0000</pubDate>
				<category><![CDATA[Java基础教程]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=11896</guid>

					<description><![CDATA[为了方便大型软件管理众多的类，解决命名冲突的问题，java引 ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">为了方便大型软件管理众多的类，解决命名冲突的问题，java引入了package机制。</p>



<p class="wp-block-paragraph">提供类的多重命名的问题。</p>



<p class="wp-block-paragraph">比如 一班张三 和二班张三 。虽然都叫张三 但是由于在不同的班上面 所以 不会冲突。但是 如果他们都在同一个包里面 那么就会有问题了。</p>



<p class="wp-block-paragraph">package 需要放在源代码的第一行。</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">package</span> <span class="hljs-selector-tag">cn</span><span class="hljs-selector-class">.foxdevelop</span>;</code></span></pre>


<p class="wp-block-paragraph">如果缺省该语句则表示是无名包。</p>



<p class="wp-block-paragraph">java编译器会把包对应到文件系统的目录管理中，比如 cn.foxdevelop 那么就会创建一个cn目录 然后再创建一个foxdevelop的子目录。里面放我们的这个.java文件。</p>



<p class="wp-block-paragraph">如果我们要在其他类中调用这个类 则需要使用import引入这个类 要不然 没法使用这个类。</p>



<p class="wp-block-paragraph">比如 现在在A.java 中引入</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">import</span> <span class="hljs-selector-tag">cn</span><span class="hljs-selector-class">.foxdevelop</span><span class="hljs-selector-class">.B</span>;</code></span></pre>


<p class="wp-block-paragraph">如果在这个包下面有多个类 比如还有C 如果想使用整个包 则可以使用*号</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">import</span> cn.foxdevelop.*;</code></span></pre>


<p class="wp-block-paragraph">如果不引入 也可以 我们需要把它的名称写全。</p>



<p class="wp-block-paragraph">比如</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">cn.foxdevelop.B b = <span class="hljs-keyword">new</span> cn.foxdevelop.B();</code></span></pre>]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh/2026/09/23/package%e5%92%8cimport%e8%af%ad%e5%8f%a5/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>static关键字</title>
		<link>https://www.foxdevelop.com/zh/2026/09/23/static%e5%85%b3%e9%94%ae%e5%ad%97/</link>
					<comments>https://www.foxdevelop.com/zh/2026/09/23/static%e5%85%b3%e9%94%ae%e5%ad%97/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Wed, 23 Sep 2026 10:07:12 +0000</pubDate>
				<category><![CDATA[Java基础教程]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=11893</guid>

					<description><![CDATA[在类中，用static声明的成员变量为静态成员变量，它是该类 ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">在类中，用static声明的成员变量为静态成员变量，它是该类的公共变量。在第一次使用时被初始化，对于该类的所有对象来说，static成员变量只有一份。</p>



<p class="wp-block-paragraph">用static声明的方法为静态方法，在调用该方法时，不会将对象的引用传递给它，所以static方法中不可以访问非static的成员。</p>



<p class="wp-block-paragraph">（静态方法不再是针对某个对象调用，所以不能访问非静态成员）</p>



<p class="wp-block-paragraph">可以通过对象引用或者类名（不需要实例化）访问静态成员。</p>



<p class="wp-block-paragraph">静态成员 只有一份，不管new多少。它是在数据空间中 data segment</p>



<p class="wp-block-paragraph">静态方法不能访问 非静态的成员 非静态的成员 必须通过对象 也就是需要先new了 才可以用</p>



<p class="wp-block-paragraph">由于main方法是静态的 所以它不能直接访问 其他的成员 包括数据和方法。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh/2026/09/23/static%e5%85%b3%e9%94%ae%e5%ad%97/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
