Java基础学习-extends继承(成员变量,局部变量,成员方法)

Posted bai-boy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础学习-extends继承(成员变量,局部变量,成员方法)相关的知识,希望对你有一定的参考价值。

package extend;
/*面向对象-继承:
 *         多个类的共同成员变量和成员方法。抽取到另一个类中(父类),我们多个类就可以访问到父类的成员了
 * */
class Game{
    String name;
    double vesion;//版本号
    String agent;//代理商
    public void start() {
        System.out.println("游戏启动");
    }
    public void stop() {
        System.out.println("游戏关闭");
    }
}
class CF extends Game{
    
}
class LOL extends Game {
    
}
public class extend {
    public static void main(String[] args) {
        CF cf=new CF();
        cf.start();
        LOL lol=new LOL();
        lol.start();
    }
}

初步的认识后,现在来看下继承在java中的特点

package extend;

class update{
    public void update() {
        System.out.println("更新了");
    }
}
class QQspeedandchuangqi extends update{
    public void start() {
        System.out.println("game start.....");
    }
    public void stop() {
        System.out.println("game stop.....");
    }
}
class QQspeed extends QQspeedandchuangqi{
    
}
class Chaungqi extends QQspeedandchuangqi{
    
}

public class extends_java_special {
    public static void main(String[] args) {
        QQspeed qqspeed=new QQspeed();
        Chaungqi chaungqi=new Chaungqi();
        qqspeed.update();
        qqspeed.start();
        qqspeed.stop();
    }
}
在以上代码中我们可以发现,java中的继承,不能实现一对多个父类,而可以多层次的继承。

继承中的成员变量,局部变量的特点:

package extend;
class parents{
    private String name="我是parents的成员变量";
}
class Father extends parents{
    public void speak() {
        System.out.println("我叫"+name);
    }
}
public class extends_member {
    public static void main(String[] args) {
        Father father=new Father();
        father.speak();
    }
}
/*在上述代码中  子类(Father类)继承了parents(父类),父类中有私有变量name,但是子类访问不了父类的私有变量,所以那么会报错*/
package extend;
class parents{
    String name="我是parents的成员变量";
}
class Father extends parents{
    String name="我是Father的成员变量";
    public void speak() {
        System.out.println("我叫"+name);
    }
}
public class extends_member {
    public static void main(String[] args) {
        Father father=new Father();
        father.speak();
    }
}
/*在上述代码中  子类(Father类)继承了parents(父类),父类中有成员变量name,但是子类也有成员变量name,
 * 此时的打印输出为:我叫我是Father的成员变量
 * 所以在同一个名称的成员变量下,对象访问的应该是子类的成员变量
 */
package extend;
class parents{
    
}
class Father extends parents{
    String name="我是Father的成员变量";
    public void speak() {
        String name="我是Father的局部变量";
        System.out.println(name);
    }
}
public class extends_member {
    public static void main(String[] args) {
        Father father=new Father();
        father.speak();
    }
}
/*在上述代码中  子类(Father类)继承了parents(父类),父类中有成员变量name1,但是子类也有成员变量name2,
 * 此时的打印输出为:我叫我是Father的局部变量
 * 所以在有局部变量的时候就用局部变量,遵循就近原则
 */

总结下继承中的成员变量,局部变量的特点:
1.子类(Father类)继承了parents(父类),父类中有私有变量name,但是子类访问不了父类的私有变量。
2.子父类中有相同名称成员变量,则依照就近原则,用子类的成员变量
3.子父类中有不通的名称成员变量,则使用父类中的成员变量
4.如果有局部变量就是用局部变量
super:可以访问父类的成员
this:引用当前对象

接下来是继承中的成员方法特点:

子类没有方法:
package
extend; class parents{ public void speak() { System.out.println("父母"); } } class Father extends parents{ } public class extends_member { public static void main(String[] args) { Father father=new Father(); father.speak(); } } 子类有同名方法 package extend; class parents{ public void speak() { System.out.println("父母"); } } class Father extends parents{ public void speak() { System.out.println("爸爸"); } } public class extends_member { public static void main(String[] args) { Father father=new Father(); father.speak(); } } /*如果子类中有这个方法,那么会进行方法的重写,覆盖父类方法,因为父类的方法不一定子类都具备。 如果子类没有方法,那么就会使用父类的方法。*/

 











以上是关于Java基础学习-extends继承(成员变量,局部变量,成员方法)的主要内容,如果未能解决你的问题,请参考以下文章

06JAVA基础面向对象-继承/多态

06JAVA基础面向对象-继承/多态

基础知识——java 类的继承重载与重写

Java基础---面向对象

《Java程序设计》第四周学习总结

extends 继承