1.数组传递会改变原来的值,调用函数传递了地址给他,所以里面可以改
int a[]={1,2,3,4,5,6,7}
func(a);//传数组地址给他初始化
//打印出来{2,2,3,4,5,6,7}
//这个数组是引用类型func(int b[]){b[0]=2;}
2.可变参数
//相当于数组,只能放在后面
public int add(int a,int ...b){int sum=0;for(int e: b){sum+=e;}}
3.包(文件夹)避免重命名冲突
package a; //当前包import xx.*/类名//导包
4.权限
private 只能在当前类中,不能被继承
缺省 没有修饰符 友好的,当前包(一个文件夹)可以访问,其他包不可以访问
public 公共的,所有包可以访问
protected 子类才有得访问,其他没有 father->son //类只有是 public 和缺省的 ,protected只要有继承关系都可以相互访问,不管同不同包
private<缺省
5.继承性extends(私有成员不能继承,)
子类继承父类 父类派生子类
super(); //调用父类构造方法
1.子类构造方法没有就调用父类(超类)构造方法super(); //一定存在 先调用 super(); 后调用子类构造方法
2.子类会报错 ,如果父类构造方法 覆盖了无参变成有参数 // 改super(参数) 即可 //父类构造方法不会被继承,但是默认调用
3.如果父类子类有相同方法
-1.方法的重载(同一个类)(参数不一样,名字一样)
- 2.方法的重写(覆盖) 父类有out(){}子类也有,输出子类的方法(个性)
(必须一模一样)
6.传递继承(传宗接代,多层继承)
7.多个继承不存在,只支持单继承,接口就可以
class c extends a,b{} (x)
8.super调用父类方法不是构造方法
super.out();super.name;
9.final关键字
final int a=10;//不可以变,当常量final class aa{ //不可以被继承,绝育}
final void out(){ //不能被重写覆盖,我的孩子不能有这个缺点}
10.继承 多态 强转子类变父类 用父亲的变量,用子类的方法(失去子类新增的方法和变量)改写可以
1.上转型对象如果父类有这个方法就会覆盖,变量不会覆盖
class Parent {int i = 20;int j = 30;void f() {System.out.print(" " + i);}
}
class Child extends Parent {int i = 30;int k = 40;void f() {System.out.print(" " + i);}void g() {System.out.print(" " + k);}public static void main(String args[]) {Parent x = new Child();System.out.print(x.i);//20 ,直接被父亲的值覆盖x.f();// 30Child x1 = (Child) x; //30System.out.print(" " + x1.i);//30x1.f();}
}
11.super放在构造方法的第一行(隐式看不见的)
上一篇:2022天梯赛练习集(2022.9-2022.10)
下一篇:类加载机制和类加载器