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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙飞 中级黑马   /  2012-6-22 19:04  /  1916 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 feigecal 于 2012-6-22 19:30 编辑

抽象类不可以创建对象,因为对象调用抽象方法没有意义。但如果抽象父类中有非抽象的方法,可不可以创建对象?子类如果没有使用抽象父类中的抽象方法,那么子类是不是就不用复写所有的抽象方法了?

9 个回复

倒序浏览
这些其实你自己都已经知道了啊, 只要有抽象方法,那么就得是在抽象类中,是抽象类就不能实例对象。
还有就是,子类必须全部覆写父类的抽象方法。
回复 使用道具 举报
抽象类不可以创建对象,因为对象调用抽象方法没有意义。但如果抽象父类中有非抽象的方法,可不可以创建对象?不可以,因为类是抽象的,就没有办法对其进行实例化,
你没有实例化,有该怎么创建呢?抽象的类都不可以创建对象,这个你以后记住,



子类如果没有使用抽象父类中的抽象方法,那么子类是不是就不用复写所有的抽象方法了?
子类和父类是继承关系,如果子类没有使用抽象父类中的抽象方法,那么子类就是抽象的,你不复写抽象方法,那你建立这个子类干什么?

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
yufeiant 发表于 2012-6-22 19:25
抽象类不可以创建对象,因为对象调用抽象方法没有意义。但如果抽象父类中有非抽象的方法,可不可以创建对象 ...

听听是这个样子啊,谢了
回复 使用道具 举报
yufeiant 发表于 2012-6-22 19:25
抽象类不可以创建对象,因为对象调用抽象方法没有意义。但如果抽象父类中有非抽象的方法,可不可以创建对象 ...

麻烦再问一下。为什么那个String一直是大写,和int不一样呢?
回复 使用道具 举报
因为String是一个类啊,而int 是一个变量类型,所有的变量类型都是小写的,但是系统规定是大写的
回复 使用道具 举报
孙飞 中级黑马 2012-6-22 19:57:13
7#
yufeiant 发表于 2012-6-22 19:50
因为String是一个类啊,而int 是一个变量类型,所有的变量类型都是小写的,但是系统规定是大写的 ...

abstract class Employee
{
        private String name;
        private String id;
        private double pay;
        Employee(String name,String id,double pay)
        {
                this.name=name;
                this.id=id;
                this.pay=pay;
        }
        public abstract void work();
}
class Manager extends Employee
{
        private int jiangJin;
        Manager(String name,String id,double pay,int jiangJin)
        {
                super(name,id,pay);
                this.jiangJin=jiangJin;
        }
        public void work()
        {
                System.out.println("ok");
        }
}
class Test
{
        public static void main(String[] args)
        {
                Manager m= new Manager();//这里找不到符号,怎么回事啊?
                m.work();
                System.out.println("Hello World!");
        }
}
回复 使用道具 举报
  Manager(String name,String id,double pay,int jiangJin)你自己写了这句有参构造方法以后,系统就不会默认给你加上默认无参构造方法,
Manager(){}在这个类里写上这句就可以找到符号了,或者在下面这里的manager m = new Manager();这句的括号里加上你要输入的值,让他调用有参构造方法,这样也可以
回复 使用道具 举报
还得加一句  上面的父类也要加构造无参函数,每类的建立都先加上构造无参,这是一个号习惯
回复 使用道具 举报
yufeiant 发表于 2012-6-22 20:33
还得加一句  上面的父类也要加构造无参函数,每类的建立都先加上构造无参,这是一个号习惯 ...

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