1.方法的重写(override):重新写/覆盖
1.1 发生在父子类中,方法名相同参数列表相同(签名相同),方法体不同;
1.2 重写方法被调用时,看对象的类型(new谁调谁);
1.3 重写需遵循“两同两小一大”的原则————了解,一般情况一模一样;
1.3.1 两同:方法名、参数列表相同
1.3.2 两小:
①派生类方法的返回值类型要小于或等于超类方法;
void时必须相同
基本类型必须相同
引用类型时,必须小于等于。——(程序认为超类大,派生类小)
②派生类方法抛出的异常小于或等于超类方法;
1.3.3 派生类方法的访问权限大于或等于超类方法——访问修饰符时
2.重写和重载的区别————常见面试题
2.1 重写(override)
Ⅰ. 发生在父子两个类中,方法名、列表参数相同,方法体不同;
Ⅱ. 遵循“运行期绑定”,看对象的类型来绑定方法;
ⅢⅣ
2.2 重载(overload)
Ⅰ. 发生在一个类中,方法名相同,参数列表不同,方法体不同;
Ⅱ. 遵循“编译期绑定”,看参数/引用类型来绑定方法;
Aoo o=new Boo();
override______Boo
overload______Aoo
3. package和import
3.1 package
作用:避免类的命名冲突
包名可以有层次结构,类的全称是:包名.类名
同包中的类不可以同名,不同包的类可以同名;
建议包名的所以字母都是小写
起名的建议
域名反写.项目名称.模块名称.类名
com.taobao.aporject.studentmanager
com.taobao.aporject.teachermanager
3.2 import
同步中的类可以直接访问
不同包内的类不可以直接访问,若想要访问只有两个方式
①先import声明类再访问类————建议
②写出类的全称————太繁琐,不建议
4. 访问控制修饰符
数据(变量)私有化(private)
行为(方法)公开化(public)
4.1 public :公共的,任何类都能访问
4.2 private :私有的,只能本类使用
4.3 protected :受保护的,本类、派生类、同包类可用
4.4 默认:什么都不加,本类、同包类可用
说明:
①类的访问权限只能是public和默认的
②类中成员的访问权限如上四种都可以
一般类都定义权限为public;
5. final:最终的、不可改变的,单独应用几率低
5.1 修饰变量:变量不能被改写
5.2 修饰方法:方法不能被重写
5.3 修饰类:类不可被继承,但可以继承未被修饰的类
Swing相关的东西————操纵窗口(目前已经不适应了)
-
import ——JFrame+JPanel
-
设计world类来继承JPanel
-
复制粘贴到main中JFrame frame = new JFrame();
World world = new World();
frame.add(world);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(WIDTH, HEIGHT); frame.setLocationRelativeTo(null); frame.setVisible(true); world.action();
-
main中 frame.setSize();的参数改为400,700;
练习
/*5package day05;
public class Person {
protected int age;
protected String address;
protected String name;
public Person(String name,int age,String address){
this.address=address;
this.age=age;
this.name=name;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address);
}
}
package day05;
public class Doctor extends Person{
private String leavl;
public Doctor(String name,int age,String address,String leavl){
super(name,age,address);
this.leavl=leavl;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"职称:"+leavl);
}
}
package day05;
public class Student extends Person{
private int stuId;
public Student(String name,int age,String address,int stuId){
super(name,age,address);
this.stuId=stuId;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"学号:"+stuId);
}
}
package day05;
public class Teacher extends Person{
private int slary;
public Teacher(String name,int age,String address,int slary){
super(name,age,address);
this.slary=slary;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"工资:"+slary);
}
}
package day05;
public class Test {
public static void main(String[] args) {
Person []ps=new Person[6];
ps[0]=new Student("zw",22,"lg",20192020);
ps[1]=new Student("zs",22,"lg",20192020);
ps[2]=new Teacher("wq",33,"lg",5000);
ps[3]=new Teacher("ew",42,"lg",4000);
ps[4]=new Doctor("xxc",52,"lg","s");
ps[5]=new Doctor("sda",62,"lg","a");
for(int i=0;i<ps.length;i++){
System.out.println("name:"+ps[i].name);
ps[i].sayHi();
}
}
}
/*4 package day05;
public class Person {
protected int age;
protected String address;
protected String name;
public Person(String name,int age,String address){
this.address=address;
this.age=age;
this.name=name;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address);
}
}
package day05;
public class Doctor extends Person{
private String leavl;
public Doctor(String name,int age,String address,String leavl){
super(name,age,address);
this.leavl=leavl;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"职称:"+leavl);
}
}
package day05;
public class Student extends Person{
private int stuId;
public Student(String name,int age,String address,int stuId){
super(name,age,address);
this.stuId=stuId;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"学号:"+stuId);
}
}
package day05;
public class Teacher extends Person{
private int slary;
public Teacher(String name,int age,String address,int slary){
super(name,age,address);
this.slary=slary;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"工资:"+slary);
}
}
package day05;
public class Test {
public static void main(String[] args) {
Person []ps=new Person[6];
ps[0]=new Student("万万",22,"lg",20192020);
ps[1]=new Student("按时",22,"lg",20192021);
ps[2]=new Teacher("斜齿",33,"lg",5000);
ps[3]=new Teacher("深度",42,"lg",4000);
ps[4]=new Doctor("反复",52,"lg","s");
ps[5]=new Doctor("国防",62,"lg","a");
for(int i=0;i<ps.length;i++){
System.out.println("name:"+ps[i].name);
ps[i].sayHi();
}
}
}
/*3 package day05;
public class Person {
protected int age;
protected String address;
protected String name;
public Person(String name,int age,String address){
this.address=address;
this.age=age;
this.name=name;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address);
}
}
package day05;
public class Doctor extends Person{
private String leavl;
public Doctor(String name,int age,String address,String leavl){
super(name,age,address);
this.leavl=leavl;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"职称:"+leavl);
}
}
package day05;
public class Student extends Person{
private int stuId;
public Student(String name,int age,String address,int stuId){
super(name,age,address);
this.stuId=stuId;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"学号:"+stuId);
}
}
package day05;
public class Teacher extends Person{
private int slary;
public Teacher(String name,int age,String address,int slary){
super(name,age,address);
this.slary=slary;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"工资:"+slary);
}
}
package day05;
public class Test {
public static void main(String[] args) {
Person []ps=new Person[6];
ps[0]=new Student("如图",22,"lg",20192020);
ps[1]=new Student("地方",22,"lg",20192022);
ps[2]=new Teacher("从v",33,"lg",5000);
ps[3]=new Teacher("更换",42,"lg",4000);
ps[4]=new Doctor("即可",52,"lg","s");
ps[5]=new Doctor("即可我",62,"lg","a");
for(int i=0;i<ps.length;i++){
System.out.println("name:"+ps[i].name);
ps[i].sayHi();
}
}
}
/*2 package day05;
public class Person {
protected int age;
protected String address;
protected String name;
public Person(String name,int age,String address){
this.address=address;
this.age=age;
this.name=name;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address);
}
}
package day05;
public class Doctor extends Person{
private String leavl;
public Doctor(String name,int age,String address,String leavl){
super(name,age,address);
this.leavl=leavl;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"职称:"+leavl);
}
}
package day05;
public class Student extends Person{
private int stuId;
public Student(String name,int age,String address,int stuId){
super(name,age,address);
this.stuId=stuId;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"学号:"+stuId);
}
}
package day05;
public class Teacher extends Person{
private int slary;
public Teacher(String name,int age,String address,int slary){
super(name,age,address);
this.slary=slary;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"工资:"+slary);
}
}
package day05;
public class Test {
public static void main(String[] args) {
Person []ps=new Person[6];
ps[0]=new Student("如图",22,"lg",20193020);
ps[1]=new Student("覆盖",22,"lg",20191020);
ps[2]=new Teacher("不能",33,"lg",5000);
ps[3]=new Teacher("喝酒",42,"lg",4000);
ps[4]=new Doctor("即可",52,"lg","s");
ps[5]=new Doctor("与",62,"lg","a");
for(int i=0;i<ps.length;i++){
System.out.println("name:"+ps[i].name);
ps[i].sayHi();
}
}
}
/*1 package day05;
public class Person {
protected int age;
protected String address;
protected String name;
public Person(String name,int age,String address){
this.address=address;
this.age=age;
this.name=name;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address);
}
}
package day05;
public class Doctor extends Person{
private String leavl;
public Doctor(String name,int age,String address,String leavl){
super(name,age,address);
this.leavl=leavl;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"职称:"+leavl);
}
}
package day05;
public class Student extends Person{
private int stuId;
public Student(String name,int age,String address,int stuId){
super(name,age,address);
this.stuId=stuId;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"学号:"+stuId);
}
}
package day05;
public class Teacher extends Person{
private int slary;
public Teacher(String name,int age,String address,int slary){
super(name,age,address);
this.slary=slary;
}
public void sayHi(){
System.out.println("我的名字:"+name+";年龄:"+age+";家住:"+address+"工资:"+slary);
}
}
package day05;
public class Test {
public static void main(String[] args) {
Person []ps=new Person[6];
ps[0]=new Student("请问",22,"lg",20192023);
ps[1]=new Student("撒",22,"lg",20192024);
ps[2]=new Teacher("现在",33,"lg",5000);
ps[3]=new Teacher("反倒",42,"lg",4000);
ps[4]=new Doctor("二",52,"lg","s");
ps[5]=new Doctor("如图",62,"lg","a");
for(int i=0;i<ps.length;i++){
System.out.println("name:"+ps[i].name);
ps[i].sayHi();
}
}
}