A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

刘.伟

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 刘.伟 初级黑马   /  2013-3-22 17:06  /  2786 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由   刘.伟 于 2013-3-23 14:14 编辑

看到java.awt 包中的windowAdapte适配器是一个抽象类,但是它的成员函数都是非抽象的,它这样做的目的是为了不让该类创建对象,但是利用private  WindowAdapter(){}不是可以达到相同的效果吗?

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

4 个回复

正序浏览
  刘.伟 发表于 2013-3-23 08:45
明白了,谢谢

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢
回复 使用道具 举报
刘.伟 来自手机 初级黑马 2013-3-23 08:45:52
板凳
明白了,谢谢
回复 使用道具 举报
本帖最后由 王瑞 于 2013-3-22 17:43 编辑

可以去看一下private关键字的使用,他是不能修饰类的。能修饰类的只有三个public final 和default(就是不写,默认的意思)
所以能达到不能创建对象的这个目的,就我现在学的知识面,貌似只能用到抽象类了
下面是我刚刚做的抽象类的学习日志,希望能给你帮助

4.7  抽象类
定义:
抽象就是从多个事物中将共性的,本质的内容抽取出来。
例如:狼和狗的共性都是犬科,犬科就是抽象出来的概念。
抽象类:
java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类
抽象类的由来:
多个对象都具备相同的功能,但是功能具体内容有所不同,那么在抽取过程中,只抽取了功能定义,并未抽取功能主体,那么只有功能声明,没有功能主体的方法称为抽象方法。
当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取。这时,只抽取功能定义,而不抽取功能主体。
(函数有两部分:函数声明和函数主体)
抽象类的的特点:
1,抽象方法一定在抽象类中。
2,抽象方法和抽象类都必须被abstract关键字修饰。
3,抽象类不可以用new创建对象。因为调用抽象方法没意义。(因为抽象方法没有主体)
4,抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用。如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
格式:
abstract class Student
{
        abstract final void study();
}
用abstract修饰类名,然后再在要被抽象的方法前加abstract,因为只用声明,没有主体,函数的结束语句不是}就是;,没有主体所以在最后加上一个;。
抽象方法一定在抽象类中。
new Student()这样的语句是错误,因为Student类是个抽象类,没有对象无法调用,但是如果这样new Student().study()是可以的,因为study是个方法,匿名函数可以调用一次,虽然里面没有内容,但是是可以执行的。
演示代码:
abstract class Student
{
        abstract void study();
        abstract void study1();
}
class BaseStudent extends Student
{
        void study()
        {
                System.out.println("base study");
                // bstract void study1();//继承Student,所以默认他还有另外一个函数语句abstract void study1();如果想不让子类是抽象的,必须重写父类中的所用方法才行。
}
}
当BaseStudent继承Student的时候,因为子类BaseStudent只重写了一个方法study(),又因为他继承Student,所以默认他还有另外一个函数语句abstract void study1();又因为抽象方法一定在抽象类中,所以这个部分继承抽象父类的子类也必须是抽象的。如果想不让子类是抽象的,必须重写父类中的所用方法才行。

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
一个类加上 abstract不只代表它不能被new不能实例化
最重要是代表它是用来被其他类所继承的
私有化是指不能被别人直接访问,需要一个公共的访问窗口
私有化的方法不能被继承
private可以修饰变量、构造器,方法、内部类;在变量前面加private 表示类的私有属性,只可以在类内部访问使用;
只有内部类才能被私有化,外部类不能用private修饰
你说这两个没什么联系,更别提有什么区别了。。

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马