abstract Java 关键字
2010-09-13 13:37
381 查看
abstract作为修饰符,可以修饰类和方法。
1.抽象类: 不能手动创建对象(JVM可以创建抽象类的对象),但是可以声明抽象类型的引用。
public class TestAbstract1{
public static void main(String[] args){
//Animal a=new Animal(); //error
Animal a=null;
a=new Dog();
}
}
abstract class Animal{
}
class Dog extends Animal{
}
2.抽象方法:有方法名的定义,没有实现,(只定义了能做什么,没定义怎么做)
抽象方法的好处是允许方法的定义和实现分开。
abstract class Animal{
public abstract void eat();
}
抽象类和抽象方法的关系:含有抽象方法的类一定是抽象类,抽象类里不一定含有抽象方法
抽象类存在的意义是用来被继承的。一个类继承了一个抽象类,必须实现抽象类里面所有的抽象方法,否则,此类也是抽象类。
abstract class Animal{
public void run(){}
public abstract void sleep();
public abstract void eat();
}
class Dog extends Animal{
public void sleep(){
System.out.println("Dog sleep.");
}
public void eat(){
System.out.println("Dog eat.");
}
}
abstract class Cat extends Animal{
public void eat(){
System.out.println("Cat eat.");
}
}
可以声明父类类型子类对象,利用多态调用抽象方法
public class TestAbstract1{
public static void main(String[] args){
Animal a=null;
a=new Dog();
a.sleep();
a.eat();
}
}
抽象类有构造方法,有父类的,也遵循单继承的规律
class E{}
abstract class Animal extends E{
public Animal(){
super();
}
}
3.多种修饰符的连用问题:
public protected default private static final abstract
可以连用:
public static
private static
public final
public static final
不可以连用:abstract final void eat();
private abstract void eat();
static abstract void eat();
abstract不能和final,private,static连用
=========================================
abstract Java 关键字
abstract 关键字可以修改类或方法。
abstract 类可以扩展(增加子类),但不能直接实例化。
abstract 方法不在声明它的类中实现,但必须在某个子类中重写。
示例
public abstract class MyClass
{
}
public abstract String myMethod();
注释
采用 abstract 方法的类本来就是抽象类,并且必须声明为 abstract。
abstract 类不能实例化。
仅当 abstract 类的子类实现其超类的所有 abstract 方法时,才能实例化 abstract 类的子类。这种类称为具体类,以区别于 abstract 类。
如果 abstract 类的子类没有实现其超类的所有 abstract 方法,该子类也是 abstract 类。
abstract 关键字不能应用于 static、private 或 final 方法,因为这些方法不能被重写,因此,不能在子类中实现。
final 类的方法都不能是 abstract,因为 final 类不能有子类。
本文来自:我爱研发网(52RD.com) - R&D大本营
详细出处:http://www.52rd.com/Blog/Detail_RD.Blog_thank_13490.html
1.抽象类: 不能手动创建对象(JVM可以创建抽象类的对象),但是可以声明抽象类型的引用。
public class TestAbstract1{
public static void main(String[] args){
//Animal a=new Animal(); //error
Animal a=null;
a=new Dog();
}
}
abstract class Animal{
}
class Dog extends Animal{
}
2.抽象方法:有方法名的定义,没有实现,(只定义了能做什么,没定义怎么做)
抽象方法的好处是允许方法的定义和实现分开。
abstract class Animal{
public abstract void eat();
}
抽象类和抽象方法的关系:含有抽象方法的类一定是抽象类,抽象类里不一定含有抽象方法
抽象类存在的意义是用来被继承的。一个类继承了一个抽象类,必须实现抽象类里面所有的抽象方法,否则,此类也是抽象类。
abstract class Animal{
public void run(){}
public abstract void sleep();
public abstract void eat();
}
class Dog extends Animal{
public void sleep(){
System.out.println("Dog sleep.");
}
public void eat(){
System.out.println("Dog eat.");
}
}
abstract class Cat extends Animal{
public void eat(){
System.out.println("Cat eat.");
}
}
可以声明父类类型子类对象,利用多态调用抽象方法
public class TestAbstract1{
public static void main(String[] args){
Animal a=null;
a=new Dog();
a.sleep();
a.eat();
}
}
抽象类有构造方法,有父类的,也遵循单继承的规律
class E{}
abstract class Animal extends E{
public Animal(){
super();
}
}
3.多种修饰符的连用问题:
public protected default private static final abstract
可以连用:
public static
private static
public final
public static final
不可以连用:abstract final void eat();
private abstract void eat();
static abstract void eat();
abstract不能和final,private,static连用
=========================================
abstract Java 关键字
abstract 关键字可以修改类或方法。
abstract 类可以扩展(增加子类),但不能直接实例化。
abstract 方法不在声明它的类中实现,但必须在某个子类中重写。
示例
public abstract class MyClass
{
}
public abstract String myMethod();
注释
采用 abstract 方法的类本来就是抽象类,并且必须声明为 abstract。
abstract 类不能实例化。
仅当 abstract 类的子类实现其超类的所有 abstract 方法时,才能实例化 abstract 类的子类。这种类称为具体类,以区别于 abstract 类。
如果 abstract 类的子类没有实现其超类的所有 abstract 方法,该子类也是 abstract 类。
abstract 关键字不能应用于 static、private 或 final 方法,因为这些方法不能被重写,因此,不能在子类中实现。
final 类的方法都不能是 abstract,因为 final 类不能有子类。
本文来自:我爱研发网(52RD.com) - R&D大本营
详细出处:http://www.52rd.com/Blog/Detail_RD.Blog_thank_13490.html
相关文章推荐
- java关键字abstract,static,final,this,super
- Java根本没有virtual这个关键字,都用abstract代替,因此Java里面根本就没有Pure这个概念
- Java中的abstract关键字
- 尚学堂 JAVA Day13 abstract 关键字
- java中的static final abstract 关键字
- java中的abstract关键字
- JAVA语言关键字Abstract含义
- Java中的abstract关键字
- Java 关键字abstract详解
- Java 关键字abstract详解
- Java中的abstract关键字
- 【java初学笔记5】马士兵-java-面向对象-39->41多态、abstract关键字
- Java中的abstract关键字
- Java关键字abstract的笔记
- java关键字之_abstract
- Java基础(八) Java修饰符及接口详解之(一)static/final/abstract关键字及接口的使用
- Java之抽象abstract关键字
- java中abstract关键字学习及应用
- Java 关键字abstract
- Java中的abstract关键字