java中的抽象类:

来源:互联网 发布:db2和mysql语法的区别 编辑:程序博客网 时间:2024/06/06 10:54
package cn.mdln.study2;
/** 继承是为了解决代码统一问题
 * 多态性为了解决类型统一问题多态的前提(必须是有继承关系)
 * 抽象类:
 * @author Administrator
 * 抽象类一定要被子类所继承,因为抽象类中有方法名,没有方法体
 * 所以子类必须强制性对父类中的所有抽象方法进行复写
 * 抽象类因为有抽象方法,所以不能直接实例化对象,必须依靠子类实例化,像上转型
 */
public class TestDemo1 {


public static void main(String[] args) {
A a=new B();//抽象类通过子类间接实例化对其实例化,
a.print();//但是先调用父类的构造方法,再调用子类的构造方法
a.fun();
B b=(B)a;
b.fun();
b.print();


}


}
abstract class A
{
private String msg="HELLO";
public A()
{
System.out.println("父类构造方法**********************");
}
public void print()
{
System.out.println("父类普通方法");
}
abstract public void fun();
}
class B extends A
{
public B()
{
System.out.println("子类构造方法----------------------");
}
public void print()
{
super.print();
System.out.println("父类普通方法子类普通方法");
}
public void fun()
{
System.out.println("抽象方法");
}
}
0 0