Closed yangsirgo closed 3 years ago
疑问:
接口的实现。class [类名] implements [接口名] { ... }
特殊的接口方法:接口中的方法只有方法名没有方法体。interface [接口名]{ [返回数据类型 void/String/...][方法名](参数列表) }
继承: 继承的表示: class [子类名] extends [父类名]{ ... } super 与 this 的使用:继承关系中为了区分父类与子类,会用super代替父类指针,this 代替子类指针, ` class [父类名] { [属性1]; [父类名](属性1){ 属性1 = 1 } }
class [子类名] { [属性2]; [子类名](属性1, 属性2){ super([属性1]); //这里的 super([属性1]) 是父类带属性1参数的构造函数 this.[属性2] = [属性2]; //这里的this是当前类指针。 // 子类可以利用 super 指针调用父类的属性和方法。 } }
`
class [类1] { [属性1]; // [类1] (){} //默认无参构造函数 [类1] (属性1, 形参1){ this.属性1 = 形参1; // 一般这里的形参命名与属性名一致 } }
继承中构造函数: 创建子类对象时,会先执行其父类的构造函数,然后执行子类的构造函数,最后完成对象的创建。 ` class [父类名] { [属性1]; [父类名] (){ [属性1] = 10; System.out.println("这是父类构造函数"); } }
class [子类名] { [属性2]; [子类名] (){ [属性2] = 20; System.out.println("这是子类构造函数"); } }
// 主函数测试 public class test { public static void main (String [] args){ System.out.println([子类对象名].[属性1] + “” + [子类对象名].[属性2]); } }
// 这里输出的结构应该是 // 这是父类构造函数 // 这是子类构造函数 // 10 20
` class [类名] { private [数据类型][属性1]; public [数据返回类型] get 属性 1(){ return [属性1]; }
public void set 属性 1([数据类型][形参]){ this.[属性1] = [形参];//这里的形参名一般与属性名一致 } } ` 其他函数: 类中成员格式如下所示: [ 访问控制符 ][返回类型][方法名]( 形参1类型 形参名,形参2 类型 形参名, ...... ) 访问控制符为 private/pubic/default/protected/abstract
10.了解对象的实例化: 超类相关的实例化 [父类名][对象名] = new [子类名][参数列表]; // 此时以对象名调用某方法(子类从父类直接继承而来的方法),虽然将父类对象的句柄指向了子类对象,实际操作的还是子类对象,只不过将对象句柄声明为父类的数据类型,此时编译器根据实际情况选择了子类的函数。
疑问:
接口的实现。class [类名] implements [接口名] { ... }
特殊的接口方法:接口中的方法只有方法名没有方法体。interface [接口名]{ [返回数据类型 void/String/...][方法名](参数列表) }
继承: 继承的表示: class [子类名] extends [父类名]{ ... } super 与 this 的使用:继承关系中为了区分父类与子类,会用super代替父类指针,this 代替子类指针, ` class [父类名] { [属性1]; [父类名](属性1){ 属性1 = 1 } }
class [子类名] { [属性2]; [子类名](属性1, 属性2){ super([属性1]); //这里的 super([属性1]) 是父类带属性1参数的构造函数 this.[属性2] = [属性2]; //这里的this是当前类指针。 // 子类可以利用 super 指针调用父类的属性和方法。 } }
`
class [类1] { [属性1]; // [类1] (){} //默认无参构造函数 [类1] (属性1, 形参1){ this.属性1 = 形参1; // 一般这里的形参命名与属性名一致 } }
继承中构造函数: 创建子类对象时,会先执行其父类的构造函数,然后执行子类的构造函数,最后完成对象的创建。 ` class [父类名] { [属性1]; [父类名] (){ [属性1] = 10; System.out.println("这是父类构造函数"); } }
class [子类名] { [属性2]; [子类名] (){ [属性2] = 20; System.out.println("这是子类构造函数"); } }
// 主函数测试 public class test { public static void main (String [] args){ System.out.println([子类对象名].[属性1] + “” + [子类对象名].[属性2]); } }
// 这里输出的结构应该是 // 这是父类构造函数 // 这是子类构造函数 // 10 20
`
` class [类名] {
private [数据类型][属性1]; public [数据返回类型] get 属性 1(){ return [属性1]; }
public void set 属性 1([数据类型][形参]){ this.[属性1] = [形参];//这里的形参名一般与属性名一致 } } ` 其他函数: 类中成员格式如下所示: [ 访问控制符 ][返回类型][方法名]( 形参1类型 形参名,形参2 类型 形参名, ...... ) 访问控制符为 private/pubic/default/protected/abstract
10.了解对象的实例化: 超类相关的实例化 [父类名][对象名] = new [子类名][参数列表]; // 此时以对象名调用某方法(子类从父类直接继承而来的方法),虽然将父类对象的句柄指向了子类对象,实际操作的还是子类对象,只不过将对象句柄声明为父类的数据类型,此时编译器根据实际情况选择了子类的函数。