super可继承父类的成员与无参构造方法
super(**,**);
super.**
super可继承父类的成员与无参构造方法
super(**,**);
super.**
苍井空高级老师?专教睡觉和吃?
接口不能实例化,接口内不能用static关键字
内部类只能在内部类里使用
子类后面加extends加父类名字
引入类
import com.sikiedu2.person;
包 package com.sikiedu1;
protected 在不同包是不能访问的;
类的方法里边可以通过传参来访问类的属性。
类声明对象
类为啥不能直接使用
static的应用

this关键字 代表当前对象
对象做为成员变量
main里两个对象

引用对象为成员变量

匿名对象(直接在方法里new一个对象)
一般生成的这个对象只是用一次

两个匿名变量相互调用

在内存里的情况

然后执行完该语句后 依次空间被释放
局部变量与成员变量的区别

我叫王俊楠
我叫王俊凯
我是你老表
你可以叫我老铁
或者叫我铁子
哈哈
武士2
public class maxNum
{
public static void main(String [] arg){
int num1=8;
int num2=9;
System.out.println("Max ="+max(num1,num2));
}
static int max(int x,int y)
{
if(x>y) return x;
else
return y;
}
}
final修饰的变量是
使用setter和getter的好处:
(1)防止属性被外界随意的修改
(2)使用setter和getter方法,可以在方法中添加一些约束,使程序更具有健壮性。
比如: public void setter(int age){
if(age <= 0){
System.out.println("年龄不能小于等于0");
return;
}
this.age = age;
}
内部类不能包含静态成员
构造子类时,会默认会调用父类里面的无参构造方法,对父类的属性进行初始化 ,隐式只会调用无参构造方法,若父类定义了有参构造方法则在构造子类时需显示调用父类构造方法 例如:super(a ,b,c,d);
父类引用指向子类对象时:
1、若子类覆盖了某方法,则父类引用调用子类重新定义的新方法
2.若子类未覆盖某方法,则父类引用调用旧方法
3.若子类覆盖了某属性,则父类引用调用旧属性
4.若子类未覆盖某属性,则父类引用调用旧属性
5.父类引用无法调用,子类新定义的属性和方法,编译会报错
1、若子类覆盖了某方法,则子类引用调用子类重新定义的新方法
2、若子类未覆盖某方法,则子类引用调用父类本身的旧方法
3、若子类覆盖了某属性,则子类引用调用子类重新定义的新属性
4、若子类未覆盖某属性,则子类引用调用父类本身的旧属性
5、子类引用可以访问子类新定义的方法