java继承中的一些 错误认识_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java继承中的一些 错误认识

java继承中的一些 错误认识

 2012/7/9 21:25:18  hjj20040849  程序员俱乐部  我要评论(0)
  • 摘要:关于继承,我想大多数人都知道,它是面向对象语言中的三大特性之一,所以在这里,关于继承的概念等我就不做详细介绍了,我主要就讲一下大家对他的认识中一些比较容易犯的错误吧。错误认识1、继承,是将父类中所有的属性和方法都继承下来。其实这个认识是错误的,继承,并不是将父类中所有的属性和方法都继承下来,而是只继承父类中公有的属性和方法,对于私有的(即是private)属性,我们可以通过对应的getter和setter方法来对其进行修改。对于私有的方法,我们可以通过其它公共的方法来对其进行调用
  • 标签:认识 Java 继承 错误

?

? ? 关于继承,我想大多数人都知道,它是面向对象语言中的三大特性之一,所以在这里,关于继承的概念等我就不做详细介绍了,我主要就讲一下大家对他的认识中一些比较容易犯的错误吧。

??? 错误认识1、继承,是将父类中所有的属性和方法都继承下来。

? ? 其实这个认识是错误的,继承,并不是将父类中所有的属性和方法都继承下来,而是只继承父类中公有的属性和方法,对于私有的(即是private)属性,我们可以通过对应的getter和setter方法来对其进行修改。对于私有的方法,我们可以通过其它公共的方法来对其进行调用。

下面是一个例子,大家可以运行来学习验证一下。

Person.java

?

package com.extendsStudy.model; 
 
public class Person { 
    private String private_name;    //私有的属性 
     
    public int public_age;      //公共属性 
 
    /** 
     * 私有属性private_name的getter方法 
     * @return 当前类中private_name的值 
     */ 
    public String getPrivate_name() { 
        System.out.println("调用了父类的getPrivate_name方法: " + this.private_name); 
        return private_name; 
    } 
     
    /** 
     * 私有属性private_name的setter方法 
     * @param private_name  记录中将要赋值给类中private_那么属性的变量 
     */ 
    public void setPrivate_name(String private_name) { 
        this.private_name = private_name; 
    } 
} 

?

?Boy.java

package com.extendsStudy.model; 
 
/** 
 * 继承了Person类的子类Boy 
 */ 
public class Boy extends Person{} 

?

?ExtendsTest.java

?

package com.extendsStudy.test; 
 
import com.extendsStudy.model.Boy; 
 
public class ExtendsTest { 
    public static void main(String[] args) { 
        Boy boy = new Boy();    //创建一个boy对象 
        boy.public_age = 11;    //变量必须先声明再赋值最后才能使用,因为在model类中没有赋值,所以在这里要记得赋值 
        System.out.println(boy.public_age);     //输出public_age属性的值 
        boy.setPrivate_name("haha");    //调用private_name属性的setter方法对父类中的private_name属性进行复制 
        System.out.println(boy.getPrivate_name());      //调用private_name属性的getter方法获取父类中的private_name属性的值 
    } 
} 
?

?

?

?

?

发表评论
用户名: 匿名