package abstractDemo;
/**
* 抽象类.抽象的类。abstract class
.是一种模板模式。抽象类为所有子类提供了一个通用模板,子类可以在这个模板的基础上进行扩展。
抽象方法
.只有方法的声明,没有方法体。
也可以这么说,包含有抽象方法的类,就是抽象类。
抽象方法与抽象类,由关键字abstract修饰。
*
*
*/
public abstract class Letter {
private String name;
public abstract void desc();
public Letter() {
this.name=null;
}
public Letter(String name) {
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Abc extends Letter{
public Abc() {
super();
}
public Abc(String name) {
super(name);
}
@Override
public void desc() {
System.out.println(this.getName());
}
/**
* 抽象类.抽象的类。abstract class
.是一种模板模式。抽象类为所有子类提供了一个通用模板,子类可以在这个模板的基础上进行扩展。
抽象方法
.只有方法的声明,没有方法体。
也可以这么说,包含有抽象方法的类,就是抽象类。
抽象方法与抽象类,由关键字abstract修饰。
*
*
*/
public abstract class Letter {
private String name;
public abstract void desc();
public Letter() {
this.name=null;
}
public Letter(String name) {
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Abc extends Letter{
public Abc() {
super();
}
public Abc(String name) {
super(name);
}
@Override
public void desc() {
System.out.println(this.getName());
}
}
//=====================================
package abstractDemo;
/**
* 抽象类不能实例化,及不能new对象
* 抽象类可以包含:属性、方法、构造方法。但是构造方法不能用来new对象,只能用来被子类调用
* 抽象类只能被继承,抽象方法必须被子类实现
*
*接口:Interface比抽象类更抽象的类,是JAVA里最抽象的最穷的类:只有常量和方法
*意义:把设计(抽象的父类或接口)与实现(子类)分开
*
*总结:曾经觉得抽象类和接口是JAVA里最扯淡的,现在看来,呵呵,有点儿可爱。
*
*/
public class Test {
public static void main(String[] args) {
//Letter b=new Letter();//抽象类可以声明(定义),不能被实例,只能通过子类(实例化)创建
Letter a=new Abc("A");//是不是经常见的一种,也是多态的表现形式之一。
a.desc();
}
}