本文目录
- SuperClass superA=new SuperClass(),superB;什么意思
- 为什么我执行的时候说找不到SuperClass(),把注释去掉可以,可是SubClass()执行的是Super(300)啊
- superclass是什么意思
- eclipse中新建一个class,superclass是什么意思
- java中的超类是什么和父类是一个意思吗
- superclass怎么默认为android.app.activity
- 求解,编译时出错,加上SuperClass(){}无参的构造方法就对了,我调用的是有参的方法,为什么不写无参不行
SuperClass superA=new SuperClass(),superB;什么意思
首先是定义了类SuperClass的对象superA并声明其次是定义了类SuperClass的对象superB即这句代码定义了两个SuperClass的对象 superA 和 superBsuperA 已初始化superB 未初始化简单的说就是类似于 int i = 0, j; 这样的句子
为什么我执行的时候说找不到SuperClass(),把注释去掉可以,可是SubClass()执行的是Super(300)啊
原因是这样的:那段代码注释了,就说明,你的父类SuperClass里面只有一个有参构造器,子类继承后,实例化子类对象的时候,即子类的构造方法里面,必须要执行父类的构造方法,而你报错的地方没有调用,解决方法:将注释打开---那么父类就有一个无参的默认构造器在 SubClass(int n) 里面加 super(n);
superclass是什么意思
superclass[英][’sju:pəklɑ:s][美][’sju:pəˌklɑ:s]n.超类; 总纲; 母集合; 超纲; 双语例句英英释义1Also, each subclass inherits methods from the superclass.同时,每个亚纲继承来自总纲的方法。2The abstract superclass defines and may partially implement the behavior, but much of the class is undefined and unimplemented.抽象的总纲而且下定义可能部份地履行行为,但是许多类别是未阐明的:未解释的和未实施的。
eclipse中新建一个class,superclass是什么意思
新建一个class 可以有四种模式 public ,default,private,protected。 除非特殊需要一般选择publicsuperclass 是超级父类的意思 比如 Object 就是一个超级父类,所有的类 都是Object的子类
java中的超类是什么和父类是一个意思吗
超类=父类=基类?你硬认为它一样也没毛病,但我认为它不一样.我先给答案然后解释.java的类属于单性繁殖,和很多语言不同,任何一个类最多只能有一个父类.父类:说白了,就是当前类的爸爸.基类:就是当前类继承关系中,第一个起始的祖宗,就是爸爸的爸爸的爸爸的爸爸....(就是这个类再没父类了,单性繁殖不讲妈)超类:当前当前类的继承关系中这一串的所有祖宗统称超类./////////传说中的分割线////////当然,你也可以说我这个概念是胡编乱造的.那么请看下面这种情形:以我认知的编程语言中,降到继承关系中的,有父类,超类,基类,但是没有爷类,没人这么称呼超类或者基类的吧.可是有子孙类这一说.抽象中讲到,一个抽象函数必须包含在一个抽象类中.而抽象类不能实例化.只有抽象类的所有抽象函数再子孙类中都实现了才可以把抽象类去掉并且以实例化了.但是又不能说在子类 或者 子类的子类 或者 子类的子类的子类 ... ...因为这么用太麻烦了.中文的传统概念就是子孙有子子孙孙的意思.说重孙子是子孙也没毛病,好理解.所以这里用子孙类就对了.可是再反过来咋说?祖宗类?也没人这么用.你只能说抽象函数是定义在超类里的,也不一定是父类,虽然很大可能是基类.所以,这就是区别了.
superclass怎么默认为android.app.activity
我们先了解一下编写程序都要涉及到哪些东西,熟悉一下SDK的基本组件,然后编写一个很简单的小程序。一、分析Demo 在上一节建立的工程Demo下,打开src/com.android.demo下的DemoActivity.java,如下所示: 713x451 Demo程序的代码就只有13行,我们依次来分析一下: 1 2 3 4 5 6 7 8 9 10 11 12 13 package com.android.demo; /** 申明这个文件的代码属于包“com.android.demo” */ import android.app.Activity;/** 从Android SDK中引用Activity组件 */ import android.os.Bundle; /** 从Android SDK中引用Bundle组件 */ public class DemoActivity extends Activity { /** 新建类DemoActivity,继承Activity,它就拥有Activity的特性了 */ /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { /** 重写基类的同名函数,程序运行候创建Activity时被调用 */ super.onCreate(savedInstanceState); /** 调用基类的同名函数 */ setContentView(R.layout.main); /** 设置试图,用于显示界面 */ } } 第1行,声明代码属于哪个包,这里的包名得与文件所在的包对应上,否则会报错。 第3、4行,引用组件。这里的“引用”并不像其他语言的include那样将文件包含进来,只是告诉编译器,后面会使用到这里面的成员。 关于Package 与 Import的详细说明,$amp;》amp;$gt;请到这里查看。 第6行,新建一个类DemoActivity,继承Activity。JAVA是一门完全面向对象的语言,所有东西都要封装在类里面,之前不熟悉面向对象的朋友估计会很不习惯(话说我之前用PHP做WEB开发,哪里都能写实现…)。DemoActivity类继承了Activity的特性,就属于一个“Activity”了(前面提过,Activity是Android中的基本组件之前,非常之基础,任何有界面的程序都有它)。 想深入了解“面向对象”的同学,$amp;》amp;$gt;请到这里查看。 第9行,重载onCreate函数。有编程经验的同学看到on前缀就知道这个函数是个回调函数,属于小受受,只能“被”,它在Activity这个界面开始创建时被调用。 第10行,调用基类的同名函数。基类还有些事情要处理呢,得通知他。 第11行,指定用哪个视图来显示界面。从字面上可以看到setContentView(R.layout.main),采用R.layout.main作为试图,那么R.layout.main代表什么?我们要修改的话从哪里下手呢呢? 我们在上一节介绍工程文件的时候介绍过一个由IDE自动维护的文件夹gen,里面有个R.java文件,有同学可能明白了,这里就是引用里面的内容,如下所示: image R.layout.main就是R.layout类里面的一个属性,值为0x7f030000,一个资源ID,那么它指向哪里呢? image 上图可以看到,真正的视图布局文件在这里。上一节讲过,res文件夹下的资源会自动在R.java里面生成记录,现在看到确实是如此。至于那个资源ID是根据什么规则生成的,那就没研究了,反正他自动维护,我们乐得清闲。 一会儿我们要修改程序界面就可以从这里入手。 Demo程序的代码部分就这么多,是不是觉得其实并没那么难?呵呵。 █ 学过JAVA的同学可能会有疑问了:怎么没有入口函数呢? 我们编写Android程序是在Android SDK下进行的,SDK在背后完成了很多工作,包括程序从哪里运行、怎么渲染视图等等,我们只需要写程序的逻辑部分、视图部分,对于这个程序里的代码来说,DemoActivity类就相当于一个入口了(姑且称之为入口Activity吧),这和原生的JAVA编程是有一点不一样哈。 █ 喜欢动脑经的同学会想:一个程序可能有多个界面,就有多个Activity,那么怎么知道该选择哪个Activity为入口呢? 上一节还提到过一个全局配置文件AndroidMainifest.xml,我们打开看看: image 我们可以看到,在这个文件里面配置了所有Activity的信息,DemoActivity里面有两个intent-filter,《action android:name=“android.intent.action.MAIN“ /》,《category android:name=“android.intent.category.LAUNCHER“ /》,发现了LAUNCHER字样,可以猜测这个就是入口标记,我们一会儿验证一下。二、新建一个Activity 我们新建一个Activity,脱离自动生成的DemoActivity试试 image 在src下的com.android.demo上点击右键 –》 New –》 Class image Name处填写类的名称,在这里我们填写launcherActivity,Superclass处我们填写android.app.Activity,就是Activity的基类,其余的不用修改,点击”Finish“,结果如下图所示: image 可以看到,launcherActivity新建好了,还自动生成了部分代码,真方便。 糟了,DemoActivity类是大写字母开头的,我们的是小写的l开头,还是统一一下吧: 在launcherActivity.java中直接修改类的名称,将l修改为L,发现IDE报错了(因为JAVA是区分大小写的,类名必须和文件名一样),把鼠标移动到错误的地方,弹出修改建议,我们选择”Rename compilation unit to…“,
求解,编译时出错,加上SuperClass(){}无参的构造方法就对了,我调用的是有参的方法,为什么不写无参不行
1、SubClass是SuperClass的子类,所以SubClass的构造方法必须调用SuperClass的构造方法;2、你没有加super(300),则会默认调用无参构造方法super(),而你的SuperClass中定义了带参的构造方法,也就是说SuperClass中没有无参构造方法,因此会报错;3、解决方法有两个,一个如你这样,调用SuperClass的带参构造方法;另一个是在SuperClass中添加一个无参构造方法。