ABSTRACTCLASS(abstract class(抽象类))
一、abstract class代表什么,有什么作用
含有abstract修饰符的class即为抽象类,abstract类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。
二、...包内定义了interface A{}和abstract class A{};为什么
你好,这里有两个问题,我分别回答你。
1.这个要分具体的情况,不在同一个包下,是可以相同的。
2.这个还是要分两种情况,
1)如果二者写在了一个类中(当然都定义成public就不说了,更不可以),如:
package com.sdt.test04;
abstract class A{
}
public interface A{
}
因为他们经过编译后的字节吗名字都是A.class,所以会出现覆盖,这样是不可以的。
2)但是下面的这个就不会出现问题:
//A.java
package com.sdt.test04;
public interface A{
}
//另外一个文件B,java
package com.sdt.test04;
abstract class A{
}
public class B{
}
这样就没有问题了。
三、abstract方法必须在abstract类中 这句话是对的还是错的
如果JAVA类的任何一个方法是abstract的,则类本身必须是abstract的
abstract修饰符可以用于类、方法、属性、事件和索引指示器(indexer),表示其为抽象成员,抽象方法是没有方法体的方法。
1、抽象类
当一个类被声明为abstract时,这个类被称为抽象类。所谓的抽象类就是没有实例对象的类。抽象类是他的所有子类的公共属性的集合,所以抽象类的一大优点就是充分利用公共属性来提高开发和维护程序的效率。
2、抽象方法
作为修饰符,abstract声明了一种没有具体对象的,出于组织概念的层次关系需要而存在的抽象类;作为类方法修饰符,abstract则声明了一种仅有方法头,而没有具体的方法体和操作实现的抽象方法。
publicabstractclassMyAbstractClass{
publicvoidtest1(){//一个正常的方法
}
publicabstractvoidtest2();//一个抽象方法
}