编程基础入门:java抽象类练习题 - 极悦
首页 课程 师资 教程 报名

编程基础入门:java抽象类练习题

  • 2020-07-07 16:01:17
  • 2262次 极悦

1.抽象类可以有构造函数吗?

答:可以

public abstract class AbstractTest {
 AbstractTest(){
 }
}

2.抽象类的构造函数的作用?

答:初始化抽象类内部声明的通用变量,并被各种实现使用。

以下例子是抽象类中初始化了id,在默认情况下,在调用子类的构造函数前是先要调用基类的构造函数的,这一点和非抽象的类一样。

public abstract class AbstractTest {
 private String id;
 
 AbstractTest(){
 this.id = UUID.randomUUID().toString().replace("-", "");
 }
 public static void main(String[] args){
 System.out.println("test");
 }

 public String getId() {
 return id;
 }

 public void setId(String id) {
 this.id = id;
 }
}

继承类使用:

public class AbstractDemo extends AbstractTest{
 public static void main(String[] args){
 AbstractDemo demo = new AbstractDemo();
 System.out.println(JSON.toJSONString(demo));
 }
}
//输出结果:{"id":"1b9190dbf7684fbe980347c2a0c6cb27"}

3.抽象类中是否可以有静态的main方法?

答:可以

抽象类没有对象概念所以不能被实例化.但可以定义属性方法,其中属性方法都可以是静态的.静态的意义其实就是在栈内存中只有一个,所以该成员也会先于对象出现在内存中,所以静态并没有违反抽象的原则.抽象类中可以定义静态成员.

public abstract class AbstractTest {
 public static void main(String[] args){
 System.out.println("test");
 }
}

4.抽象类关键字abstract不可以和哪些关键字共存?

答:private、final、static

private:abstract是要子类去实现这个方法,而private修饰子类根本无法得到父类这个方法,互相矛盾。

final:被final修饰的类不能有子类,因为抽象方法后期需要被子类重写,一旦加final无法重写。

static:使用static我们就可以直接通过类名访问抽象方法,由于抽象方法没有方法体,所以无法实现。

5.抽象类中是否可以不定义抽象方法?

答:可以,这么做的目的是不让其他类创建本类对象,交给子类完成。

6.Java抽象类可以实现接口吗?它们需要实现所有的方法吗?

答:可以。因为它们是抽象的,所以它们不需要实现所有的方法。

public interface InterfaceTest {
 public abstract void abstractTest();
 }
public abstract class AbstractTest implements InterfaceTest{
 	//可以不用实现方法
 }

以上就是极悦java培训机构的小编针对“编程基础入门:java抽象类练习题”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交