黑马程序员技术交流社区

标题: 【关于】抽象类中的私有属性能在子类中访问到吗? [打印本页]

作者: wkz_crystal    时间: 2015-3-14 00:46
标题: 【关于】抽象类中的私有属性能在子类中访问到吗?
//定义个抽象类 人(Person)
abstract class Person
{
        //人共同具有的属性有:姓名,年龄,性别
          String name;   //(就是这里的属性如果用private定义,在子类中能访问到吗??)
          int age;
          String sex;

        //构造方法的初始化
        Person(String name,int age,String sex)
        {
                this.name=name;
                this.age=age;
                this.sex=sex;
        }

        //人共同的行为说话,没有主体,因为每个人说话的具体内容不知道
        abstract void speak();
}

//小红的爸爸继承了抽象的人类型,并且实现接口中工作的功能
class HongFather extends Person implements InterFaceDemo
{
        HongFather(String name,int age,String sex)
        {
                super(name,age,sex);
        }
       
        //实现抽象类中说话的功能
        void speak()
        {
                System.out.println("我叫"+name+"是小红的爸爸!今年"+age+"岁了");
        }
        //实现接口中能工作的新功能
        public void work()
        {
                System.out.println("爸爸从事的工作是A和B!");
        }

}


作者: DxxD    时间: 2015-3-14 08:37
可以,但是需要抽象类中定义一个公共接口,还有就是抽象类中的成员跟方法本来就是用来继承访问的,如果定义成私有属性,就没多大意义
作者: wkz_crystal    时间: 2015-3-14 13:53
在抽象类中定义一个接口?具体怎样实现呢?还是有点不明白……
作者: fantacyleo    时间: 2015-3-14 13:57
wkz_crystal 发表于 2015-3-14 13:53
在抽象类中定义一个接口?具体怎样实现呢?还是有点不明白……

2楼说的公共接口不是java语法中的接口interface,而是api这个单词中的"i"——interface,表示一种访问途径,体现到代码里就是public的setter和getter方法来访问私有成员变量
作者: wkz_crystal    时间: 2015-3-14 14:08
如果用set ,get方法,是不是上面的在抽象的父类中表示:

//定义个抽象类 人(Person)
abstract class Person
{
        //人共同具有的属性有:姓名,年龄,性别
          String name;   //(就是这里的属性如果用private定义,在子类中能访问到吗??)
          int age;
          String sex;

        //构造方法的初始化
        Person(String name,int age,String sex)
        {
                this.name=name;
                this.age=age;
                this.sex=sex;
        }//设置set和get的方法在子类的对象实例化时,就直接调用是吗?
       public String setName(String name)       {
                return  name;
        }

        public vodi getName)
       {
                this.name = name;
        }


        //人共同的行为说话,没有主体,因为每个人说话的具体内容不知道
        abstract void speak();
}




作者: 王刚岩    时间: 2015-3-14 14:55
可以,但是需要抽象类中定义一个公共接口,还有就是抽象类中的成员跟方法本来就是用来继承访问的,如果定义成私有属性,就没多大意义




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2