java这题b也是对的吧,子类必须重载父类所有抽象方法
7个回答
展开全部
抽象类必须被继承,抽象方法必须被重写,抽象类不能被实例化,抽象方法只需声明,不须实现!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用darkads2012的回答:
图片看得好蛋疼
B是正确的,抽象类的非抽象子类必须实现重载父类中的所有抽象方法。因为抽象方法是非private的,那么就会被子类继承,如果子类不重写抽象方法,按照抽象类的定义,那么子类也只能是抽象类。
所以,抽象类的子类要么也是抽象类,要么重载了其父类的所有抽象方法
C是错误的,因为我们不能创建一个抽象类对象,但是可以使用抽象类创建一个具体子类对象。
假设P是抽象类,T是其具体子类,那么:P p = new P();是错误的,而 P p = new T();则是正确的。而二楼例子中使用的匿名内部类来创建一个对象,实际上
A a = new A{void prints() {System.out.println("A~~~~~~~~~~~~~~~~~");}};
这段代码表示了一个没有名字的抽象类A 的一个具体实现子类。内部类虽然让代码变得简洁,但是却破坏了程序的逻辑性,如果是一个java初学者还是少用的好。
图片看得好蛋疼
B是正确的,抽象类的非抽象子类必须实现重载父类中的所有抽象方法。因为抽象方法是非private的,那么就会被子类继承,如果子类不重写抽象方法,按照抽象类的定义,那么子类也只能是抽象类。
所以,抽象类的子类要么也是抽象类,要么重载了其父类的所有抽象方法
C是错误的,因为我们不能创建一个抽象类对象,但是可以使用抽象类创建一个具体子类对象。
假设P是抽象类,T是其具体子类,那么:P p = new P();是错误的,而 P p = new T();则是正确的。而二楼例子中使用的匿名内部类来创建一个对象,实际上
A a = new A{void prints() {System.out.println("A~~~~~~~~~~~~~~~~~");}};
这段代码表示了一个没有名字的抽象类A 的一个具体实现子类。内部类虽然让代码变得简洁,但是却破坏了程序的逻辑性,如果是一个java初学者还是少用的好。
展开全部
子类不是抽象类,必须重写父类中的所有抽象方法!!不是重载
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
重载和重写的概念弄混了 ,这里的B是错误的 ,子类必须重写(覆盖)所有的父类的所有抽象方法才是对的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
图片看得好蛋疼
B是正确的,抽象类的非抽象子类必须实现重载父类中的所有抽象方法。因为抽象方法是非private的,那么就会被子类继承,如果子类不重写抽象方法,按照抽象类的定义,那么子类也只能是抽象类。
所以,抽象类的子类要么也是抽象类,要么重载了其父类的所有抽象方法
C是错误的,因为我们不能创建一个抽象类对象,但是可以使用抽象类创建一个具体子类对象。
假设P是抽象类,T是其具体子类,那么:P p = new P();是错误的,而 P p = new T();则是正确的。而二楼例子中使用的匿名内部类来创建一个对象,实际上
A a = new A{void prints() {System.out.println("A~~~~~~~~~~~~~~~~~");}};
这段代码表示了一个没有名字的抽象类A 的一个具体实现子类。内部类虽然让代码变得简洁,但是却破坏了程序的逻辑性,如果是一个java初学者还是少用的好。
B是正确的,抽象类的非抽象子类必须实现重载父类中的所有抽象方法。因为抽象方法是非private的,那么就会被子类继承,如果子类不重写抽象方法,按照抽象类的定义,那么子类也只能是抽象类。
所以,抽象类的子类要么也是抽象类,要么重载了其父类的所有抽象方法
C是错误的,因为我们不能创建一个抽象类对象,但是可以使用抽象类创建一个具体子类对象。
假设P是抽象类,T是其具体子类,那么:P p = new P();是错误的,而 P p = new T();则是正确的。而二楼例子中使用的匿名内部类来创建一个对象,实际上
A a = new A{void prints() {System.out.println("A~~~~~~~~~~~~~~~~~");}};
这段代码表示了一个没有名字的抽象类A 的一个具体实现子类。内部类虽然让代码变得简洁,但是却破坏了程序的逻辑性,如果是一个java初学者还是少用的好。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询