黑马程序员技术交流社区

标题: 关于JAVA抽象类 [打印本页]

作者: 孙亚雄    时间: 2012-8-14 07:24
标题: 关于JAVA抽象类
定义一个抽象类,类名AaaClass。并在其中定义两个方法,抽象方法aaaMeth()和普通方法meth()。
通过该类的子类来实现该类。谢谢了
作者: 黄敏    时间: 2012-8-14 08:53
本帖最后由 黄敏 于 2012-8-14 09:12 编辑

还是多看看视频教程吧,里面有详细解答
给个例子你看看

public class Test03 {
        public static void main(String Args[]){
                BbbClass b = new BbbClass();
                int z =100;
                 int sum1 = b.aaaMeth(z);
                System.out.print(sum1);
        }
       
}

abstract class AaaClass{
       
        public void meth(int x, int y){
                int tem = x;
                x = y ;
                y = tem;
        }
       
        public abstract int aaaMeth(int x);
}

class BbbClass extends AaaClass{
       

        public int aaaMeth(int i) {
                // TODO Auto-generated method stub
                if(i==1){
                        return 1;
                }
                else
                        return i+ aaaMeth(i-1);
        }
}

作者: 张忠豹    时间: 2012-8-14 09:30
/*
* 定义一个抽象类,类名AaaClass。并在其中定义两个方法,抽象方法aaaMeth()和普通
* 方法meth()。通过该类的子类来实现该类。
* */
abstract class AaaClass{
        int x = 3;
        abstract void aaaMeth();
        public void meth(){
                System.out.println("我是抽象类");
        }
}
class SonAssClass extends AaaClass{
        int x = 4;
        void aaaMeth() {
                int x =5;
                //其实,在这些继承关系中,将每个类中的属性搞清楚之后,应该就没有什么问题
                System.out.println("我重写了父类的aaaMeth方法");
                System.out.println("获取父类对象的x"+super.x);
                System.out.println("获取子类对象的x"+this.x);
                System.out.println("获取本方法的x"+x);
        }
       
}
public class RunAaaClass {
        public static void main(String args[]){
                SonAssClass son = new SonAssClass();
                son.aaaMeth();
                son.meth();
        }
}
作者: 黑马_许芸    时间: 2012-8-14 12:19
/*定义一个抽象类,类名AaaClass。并在其中定义两个方法,抽象方法aaaMeth()和普通方法meth()。
通过该类的子类来实现该类。*/

public class test {
public static void main(String[] args) {
  AaaClass aaa = new subClass();   //这里初始化子类
  aaa.aaaMeth();     //调用aaaMeth方法
  aaa.meth();       //调用Meth方法
}
}
abstract class AaaClass
{
public abstract void aaaMeth();
public void meth()
{
  System.out.println("这是抽象类的普通方法meth");
}
}
class subClass extends AaaClass
{
  @Override
public void aaaMeth()    //在子类中必须要重写这个方法
  {
   System.out.println("在子类中实现了AaaClass的抽象方法aaaMeth");
}
}

作者: 胡高德    时间: 2012-8-14 13:50
我代码以附件形式回复,你看看,应该对你有帮助。

Abstract.zip

3.92 KB, 下载次数: 128


作者: 黎健东    时间: 2012-8-14 13:56
本帖最后由 黎健东 于 2012-8-14 13:58 编辑
  1. package com.lee.calc.copy003;

  2. public class Test {
  3.     public static void main(String []args){
  4.         AaaClass b = new BbbClass();
  5.         b.aaaMeth();
  6.         b.meth();
  7.         
  8.         AaaClass c = new CccClass();
  9.         c.aaaMeth();
  10.         c.meth();
  11.     }
  12. }

  13. abstract class AaaClass{
  14.     abstract void aaaMeth();
  15.     void meth(){
  16.         System.out.println("抽象类中的meth方法");
  17.     }
  18. }

  19. class BbbClass extends AaaClass{

  20.     @Override
  21.     void aaaMeth() {
  22.         System.out.println("BbbClass子类实现了抽象父类的aaaMeth方法");
  23.         
  24.     }
  25.    
  26. }

  27. class CccClass extends AaaClass{

  28.     @Override
  29.     void aaaMeth() {
  30.         System.out.println("CccClass子类实现了抽象父类的aaaMeth方法");
  31.         
  32.     }
  33.    
  34. }
复制代码
输出结果:

BbbClass子类实现了抽象父类的aaaMeth方法
抽象类中的meth方法
CccClass子类实现了抽象父类的aaaMeth方法
抽象类中的meth方法






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2