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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zbgl 中级黑马   /  2013-11-17 22:58  /  1113 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

抽象类中只能定义抽象方法?抽象方法只能存在抽象类中?非抽象方法可以继承抽象方法?抽象方法可以继承抽象方法?抽象方法可以继承非抽象方法?

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

7 个回复

正序浏览
你只要记住:有抽象方法的类,一定是个抽象类;抽象类中不一定有抽象方法就哦了。还有一个类继承一个抽象类的时候,如果不能继承的抽象类中的方法都实现的话,那么自身也会变成抽象类,抽象类之间是可以相互继承的而且还是实现一个一个接口。
回复 使用道具 举报

好吧,一个个回答:
1抽象类中只能定义抽象方法?不是,也可以有非抽象方法,如果全是抽象的就是接口了,也可以一个抽象方法都不写,目的是不让该类建立对象
2抽象方法只能存在抽象类中?还可以存在接口中
3非抽象方法可以继承抽象方法?不能这么说,方法不存在继承之说,应该说抽象类,非抽象类当然可以继承抽象类
4抽象方法可以继承抽象方法?还是一样,我知道你想说抽象类,可以的
5抽象方法可以继承非抽象方法?还是抽象类,,,这个可以的,但是没人这么干。为了验证最后一个问题,举例一下代码,有结果:
public class Demo7 {
        public static void main(String[] args) {
                son s=new son();
                s.zi1();            //打印结果zi1
                s.zi2();            //打印结果zi2
                s.fu1();           //打印结果fu1      
        }
}
class son extends zi{
        public void zi1(){
                System.out.println("zi1");
        }
}
abstract class zi extends fu{
         abstract void zi1();
       
        public void zi2(){
                System.out.println("zi2");
        }
}
class fu{
        public void fu1(){
                System.out.println("fu1");
        }
}

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
1,抽象类中必须有抽象方法,也可以定义非抽象方法。
2,抽象方法也可以定义在接口中
3,方法没有继承关系,类和接口有继承关系。
4,方法与方法之间没有继承  这中关系
5,理由同上
6,同上

如果你问的是非抽象类和类的关系的话,那他们之间的关系可以是
非抽象类可以继承抽象类  并实现抽象类中的抽象方法。
抽象类可以继承抽象类。
抽象类可以继承非抽象类。
回复 使用道具 举报
楼上第二条错 被abstract修饰的类里的方法不一定都是要用abstract修饰。
而含有abstract修饰的方法所在的类也是抽象类,但该类不一定要被abstract修饰。
回复 使用道具 举报
thanks,抽象类的实现类和继承类有什么区别?
回复 使用道具 举报
        1        抽象方法一定定义在抽象类中
        2         抽象方法和抽象类都必须被abstract修饰
        3        抽象类不可以new创建对象,因为调用抽象方法没意义。
        4        抽象类中的方法要被使用,必须子类重写所有抽象方法后,建立子类对象调用
                如果只重写一部分,该子类依旧为抽象类。
        5        抽象类可以不定义抽象方法,这样做仅仅是不让该类创建对象。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马