代码的复用
一个对象所属类型是有多个的,类与类之间有继承关系
-子类
更具体,有只属于子类的一些属性和方法
-父类
更抽象,所有子类共有的属性和方法
-单继承
一个类只有一个显式父类
ex:人类
学生类
大学生类
学生类是大学生的父类,而人类不是大学生的父类
继承的代码格式:
关键字:extends
格式:class 类名 extends 父类名{ }
Java中所有类的父类都是object
子类继承到了父类的什么?
所有都继承了,但不一定能用
父类的private也被子类继承了,只是不能直接用,可以间接用
public class Dad {
private String name;
protected int age;
public void showname(){
System.out.println("name is"+name);
}
public static void main(String[]args){
Dad dad1=new Dad();
dad1.name="张三";
dad1.age=42;
dad1.showname();
}
}
public class Kid extends Dad {
public static void main(String[]args){
Kid kid1=new Kid();
kid1.age=30;
kid1.showname();
}
}
继承到的东西,不用定义,直接用
子类及子类创建的对象可以调用到继承的哪些属性和方法?
访问权限修饰符(检查代码调用的范围是否合理)
有public,不写,protected,private
只能修饰属性,方法,不能修饰局部变量
-项目与结构
-src public,整个项目下都可以访问
- package1 不写,当前包中可访问
- package1-1 protected,本包,子类可访问(邻居,亲戚)
-java文件
-类代码 private,只有在这个类中可以用
-方法,代码块
ps:使用不同包中的类,需要import这个类所在的包路径,继承也是需要导包的
子类自己定义的,非继承得到的,可以直接使用
类型转型
-强制转型与自动转型
public class Test {
int i=(int)1.2;
//强制转型
float f=2;
double t=f;
//自动转型
}
-子类与父类之间的转型
Dad dad2=new Kid();//自动转型 子类转父类
Kid kid=(Kid) dad2 ;//强制转型 父类转子类
只有自动转型过的对象才能强制转型
相互转型屁用没有,都是假的wuwu
问题集
1.文件名与类名
文件名与类名不一定必须一致,只有类前有public,才需要保证文件名与类名一致
一个Java中可以有多个类,若无public类,则文件名就可以不与类名一致,随意
2.数据转型时的顺序
byte<short<char<int<long<float<double