面向对象编程(中级)
包
访问修饰符
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9bcq1FLp-1634378483112)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210912225829740.png)]](https://img-blog.csdnimg.cn/ccff90c3da824d5e8b9cadf4f0e6f611.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r9SIrf7E-1634378483114)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210912225848524.png)]](https://img-blog.csdnimg.cn/22780e7d7f6946c9b83baf2de616904e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
封装
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2LjsdCSu-1634378483115)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913001441655.png)]](https://img-blog.csdnimg.cn/92b946339fe7425fb9cba359151c270c.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DaE2whk2-1634378483117)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913001451542.png)]](https://img-blog.csdnimg.cn/337e3337a7ad4d1a8a254b3f1cebbc47.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_19,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4p5jCCRx-1634378483118)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913001502618.png)]](https://img-blog.csdnimg.cn/ac97ca0463d84d1c90e4e6b8cdf0cb3b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_18,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PhrGM3t9-1634378483119)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913001523350.png)]](https://img-blog.csdnimg.cn/f7527f1e7f5d41d2a66780418c708338.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
01:
public class Encapsulation01
{public static void main(String[] args){Person person = new Person();person.name = "Tom";person.setAge(30);person.setSalary(30000);}
}class Person
{public String name;private int age;private double salary;public void setSalary(double salary){this.salary = salary;}public double getSalary(){return this.salary;}public void setAge(int age){if (age >= 1 && age <= 123)this.age = age;else {System.out.println("Input Error");this.age = 18;//给个默认age}}public int getAge(){return this.age;}public void setName(String name){if (name.length() >= 2 && name.length() <= 6)this.name = name;else{System.out.println("Input Error");this.name = "wuming";}}public String getName(){return this.name;}public String printElem(){return "name = "+name+" age = "+age+" salary = "+salary;}}
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fZq4kw84-1634378483120)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913003721208.png)]](https://img-blog.csdnimg.cn/0aa4fc3f1dbb4e35b92dcc34d1a8f073.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_19,color_FFFFFF,t_70,g_se,x_16)
01:
public class Encapsulation01
{public static void main(String[] args){Person person = new Person();person.name = "Tom";person.setAge(30);person.setSalary(30000);}
}class Person
{public String name;private int age;private double salary;public Person(){}public Person(String name,int age,double salary){//this.name = name;// this.age = age;// this.salary = salary;setName(name);setAge(age);setSalary(salary);}public void setSalary(double salary){this.salary = salary;}public double getSalary(){return this.salary;}public void setAge(int age){if (age >= 1 && age <= 123)this.age = name;else {System.out.println("Input Error");this.age = 18;//给个默认age}}public int getAge(){return this.age;}public void setName(String name){if (name.length() >= 2 && name.length() <= 6)this.name = name;else{System.out.println("Input Error");this.name = "wuming";}}public String getName(){return this.name;}public String printElem(){return "name = "+name+" age = "+age+" salary = "+salary;}}
小练习
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rx0yR2Uu-1634378483121)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913005853520.png)]](https://img-blog.csdnimg.cn/8046fb4988b04b349972ab378498d4ba.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
package HelloDemo;public class Account {private String name;private double balance;private String password;public Account(){}public Account(String name, double balance, String password) {this.setBalance(balance);this.setName(name);this.setPassword(password);}public String getName() {return name;}public void setName(String name) {if(name.length() >= 2 && name.length() <= 4)this.name = name;else{System.out.println("Input Error");this.name = "wuming";}}public double getBalance() {return balance;}public void setBalance(double balance) {if (balance > 20)this.balance = balance;else {System.out.println("Input Error,balance = 0");}}public String getPassword() {return password;}public void setPassword(String password) {if (password.length()==6)this.password = password;else{System.out.println("Input Error password = 000000");this.password = "000000";}}public void showInfo(){//可以增加权限的校验System.out.println("name = "+name+" balance = "+balance+" password = "+password);}
}//-------------------------------------------------------------------------------package HelloDemo;public class TestAccount {public static void main(String[] args){Account account = new Account();account.setName("Tom");account.setBalance(60);account.setPassword("123456");account.showInfo();}
}
继承
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WAe8ExxD-1634378483122)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913125008216.png)]](https://img-blog.csdnimg.cn/0105f1d15baa4e358e9c4e553d69523a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v1ciZg3b-1634378483123)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913125501397.png)]](https://img-blog.csdnimg.cn/4dfcdf2ecec44f8fa7a8b0a7c155acd7.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1cxssBSU-1634378483124)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913125522965.png)]](https://img-blog.csdnimg.cn/6a3f8fea346e48b7aa22a331f60f4285.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BjNjdeLg-1634378483125)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913134518203.png)]](https://img-blog.csdnimg.cn/0ead8122999c4c78a115e5284db9b111.png)
01:
package JiCWorkDemo;public class Pupil {public String name;public int age;private double score;public void setScore(double score) {this.score = score;}public void testing(){System.out.println("pupil name= "+name);}public void showInfo(){System.out.println("name = "+name+" age = "+age+" score = "+score);}
}//===========================================package JiCWorkDemo;public class Graduate extends Pupil{public void testing(){System.out.println("Graduate name= "+name);}
}//===========================================package JiCWorkDemo;public class WorkDemo {public static void main(String[] args){Pupil pupil = new Pupil();pupil.name = "Tom";pupil.age = 11;pupil.testing();pupil.setScore(50);pupil.showInfo();System.out.println("========");Graduate graduate = new Graduate();graduate.name = "Jack";graduate.age = 23;graduate.testing();graduate.setScore(80);graduate.showInfo();}
}
继承的深入讨论/细节问题
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LlOljXli-1634378483126)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913134452221.png)]](https://img-blog.csdnimg.cn/34c960b6cdfd4fd7a28a82a8931766d6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
01:
package JiCWorkDemo;public class Base {public int n1 = 100;protected int n2 = 200;int n3 = 300;private int n4 = 400;public int getN4(){return n4;}public void callTest400(){test400();}public Base(){System.out.println("Base()......");}public void test100(){System.out.println("test100");}protected void test200(){System.out.println("test200");}void test300(){System.out.println("test300");}private void test400(){System.out.println("test400");}}//==============================================package JiCWorkDemo;public class Son extends Base{public Son(){System.out.println("sub()...");}public void say0k(){System.out.println(n1+n2+n3);test100();test200();test300();//System.out.println(n4);//Error//test400();//ErrorSystem.out.println("n4 = "+getN4());callTest400();}
}




继承的本质分析
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uxSUnztd-1634378483126)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913134656307.png)]](https://img-blog.csdnimg.cn/ac70d943d7d5471bbace5d8663a2971b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LhxMTFWn-1634378483127)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913140731608.png)]](https://img-blog.csdnimg.cn/6d9ff3db66c34fb1a91d16820806afb8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
如果查找过程中,父类的age是private,而爷爷类的age是public,但还是会报错,因为找到父类的age是private以后就会报错,不会去找爷爷类的age
小练习
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P1waz1Kj-1634378483128)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913185017528.png)]](https://img-blog.csdnimg.cn/412d1a80218e4a4d9566a4bacc1f92b2.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yJWDJWgF-1634378483129)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913185035390.png)]](https://img-blog.csdnimg.cn/d9b039984d9446a1882eb3fa5c22ecc9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
结果如下:
我是A类
hahah我是B类的有参构造
我是c类的有参构造
我是c类的无参构造
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EJdNwFV3-1634378483132)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913193406868.png)]](https://img-blog.csdnimg.cn/4906ed8ad5294d94af9219abcdefa21e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
01:
package ExerciseDemoWork;public class Computer {private String cpu;private int memory;private int disk;public Computer(String cpu, int memory, int disk) {this.cpu = cpu;this.memory = memory;this.disk = disk;}public String getDetails(){return "cpu = "+cpu+" memory = "+memory+" disk = "+disk;}public String getCpu() {return cpu;}public void setCpu(String cpu) {this.cpu = cpu;}public int getMemory() {return memory;}public void setMemory(int memory) {this.memory = memory;}public int getDisk() {return disk;}public void setDisk(int disk) {this.disk = disk;}}//============================================================================package ExerciseDemoWork;public class PC extends Computer{private String brand;public PC(String cpu, int memory, int disk, String brand) {super(cpu, memory, disk);this.brand = brand;}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public void showInfo(){System.out.println("Pc = ");System.out.println(getDetails()+"brand = "+brand);}
}//===========================================================================package ExerciseDemoWork;public class NotePad extends Computer{private String color;public NotePad(String cpu, int memory, int disk, String color) {super(cpu, memory, disk);this.color = color;}
}//=============================================================================package ExerciseDemoWork;public class Test {public static void main(String[] args){PC pc = new PC("intel", 16, 500, "IBM");pc.showInfo();}
}
super关键字
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LV18cbuk-1634378483132)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913200453258.png)]](https://img-blog.csdnimg.cn/05a5a4ebb4b240aca18e59d21ae5a860.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
01:
package SuperWorkDemo;public class B extends A{public void hi() {System.out.println(super.n1 + " " +super.n2 + " " + super.n3);//System.out.println(super.n4);//Error}public void ok(){super.test100();super.test200();super.test300();//super.test400();//Error}public B(){super("jack");}// public void hello()
// {
// //super();//error
// }}//==========================================================================package SuperWorkDemo;public class A {public int n1 = 100;protected int n2 = 200;int n3 = 300;private int n4 = 400;public void test100(){};protected void test200(){};void test300(){};private void test400(){};public A(){}public A(String str){}
}
细节
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e4tOCUbH-1634378483133)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913204559853.png)]](https://img-blog.csdnimg.cn/9563e068b47a44d5b8acfd91d43bf032.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a9KUcspE-1634378483134)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913205546470.png)]](https://img-blog.csdnimg.cn/841888b9d1ab450f9aa4455780426946.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3OAOZbQi-1634378483135)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913211101533.png)]](https://img-blog.csdnimg.cn/17c60e59573e4d4f8d4cff3eb3413bd2.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AuQ4alTW-1634378483136)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913211308665.png)]](https://img-blog.csdnimg.cn/e1e0e28b1ee44818a6fccd26c0c42f8c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
方法重写/覆盖
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cOVhRYGZ-1634378483137)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913211556974.png)]](https://img-blog.csdnimg.cn/91ef8fc423e240fd9ec9590c8930f728.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
01:
package OverrideWorkDemo;public class Animal {public void cry(){System.out.println("动物叫唤");}}//=============================================================package OverrideWorkDemo;public class Dog extends Animal{public void cry(){System.out.println("Small dog crying");}
}//==================================================================package OverrideWorkDemo;public class Override01 {public static void main(String[] args){Dog dog = new Dog();dog.cry();}
}
注意事项和使用细节
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PFUNp4ex-1634378483137)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913213925230.png)]](https://img-blog.csdnimg.cn/2848f6dfe2164b779b132cd28b205ffe.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
小练习
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jbx3KKkN-1634378483138)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913214136571.png)]](https://img-blog.csdnimg.cn/029a7a52ab324672aa72c2e6ba05820c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kvvmwIlK-1634378483138)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913214229142.png)]](https://img-blog.csdnimg.cn/7664b658566a4cd0a798d0a7aabc9939.png)
01:
package PersonWorkDemo;public class Person {private String name;private int age;public String say(){return "name = "+name+" age = "+age;}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}//====================================package PersonWorkDemo;public class Student extends Person{private int id;private double score;public Student(String name, int age, int id, double score) {super(name, age);this.id = id;this.score = score;}public String say(){return super.say()+" id = "+id+" score = "+score;}public int getId() {return id;}public void setId(int id) {this.id = id;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}
}//=================================================package PersonWorkDemo;public class OverrideExercise {public static void main(String[] args){Person jack = new Person("jack", 10);System.out.println(jack.say());Student smith = new Student("smith",20,123456,99.8);System.out.println(smith.say());}// name = jack age = 10
// name = smith age = 20 id = 123456 score = 99.8
}
多态
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rcWjG8GH-1634378483139)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913222950487.png)]](https://img-blog.csdnimg.cn/8f6cf5c7cf8148fda60d597e9306548c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S0DKog9W-1634378483139)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913223008274.png)]](https://img-blog.csdnimg.cn/1295ba3bee5b42f097cbaeb7cece6909.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)

01:
package Animal;public class PolyObject {public static void main(String[] args){Animal animal = new Dog();animal.cry();animal = new Cat();animal.cry();}
}//=====================================================================package Animal;public class Dog extends Animal{@Overridepublic void cry() {System.out.println("Dog cry cry......");}
}//===================================================================package Animal;public class Cat extends Animal{@Overridepublic void cry() {System.out.println("Cat cry cry....." );}}//=================================================================package Animal;public class Animal {public void cry(){System.out.println("Animal cry...");}}
多态注意事项和细节讨论
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8qOKwsbP-1634378483141)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913233928561.png)]

01:
public class PolyDetail
{public static void main(String[] args){Animal animal = new Cat();Object obj = new Cat();System.out.println("ok~~");}
}
- 可以调用父类中的所有成员(需遵守访问权限),但是不能调用子类的特有的成员,因为在编译阶段,能调用哪些成员,是由编译类型来决定的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0KKbSFqi-1634378483142)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210913233955641.png)]

多态的向下转型
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JmoOR0yF-1634378483142)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210914001332743.png)]](https://img-blog.csdnimg.cn/c4c68592cac3422fb8b37f1e3cebae8b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_17,color_FFFFFF,t_70,g_se,x_16)
01:
Animal animal = new Cat();Cat cat = (Cat)animal;
cat.catchMouse();
02:
Animal animal = new Cat();Dog dog = (Dog)animal;//Error
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tnFGpgMK-1634378483143)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210914003151701.png)]](https://img-blog.csdnimg.cn/88245f676b2d44f0ab20b566b816a362.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
01:
package PolyDetailDemo;public class PolyDetailedDemo {public static void main(String[] args){Base base = new Sub();System.out.println(base.count);//10Sub sub = new Sub();System.out.println(sub.count);//20}}class Base
{int count = 10;
}class Sub extends Base{int count = 20;
}
02:
public class PolyDetail03
{public static void main(String[] args){BB bb = new BB();System.out.println(bb instanceof BB);//trueSystem.out.println(bb instanceof AA);//trueAA aa = new BB();System.out.println(aa instanceof AA);//trueSystem.out.println(aa instanceof BB);//trueObject obj = new Object();System.out.println(obj instanceof AA);//falseString str = "hello";System.out.println(str instanceof Object);//true}
}class AA{}class BB extends AA{}
小练习
01:
public class PolyExercise01
{public static void main(String[] args){double d = 13.4;//oklong l = (long)d;//okSystem.out.println(l);//13int in = 5;//okboolean b = (boolean)in;//error int -> booleanObject obj = "Hello";//ok 向上转型String objStr = (String)obj;//ok 向下转型System.out.println(objStr);//helloObject objPri = new Integer(5);//ok 向上转型String str = (String)objPri;//Error 指向Integer的父类引用,转成StringInteger str1 = (Integer)objPri;//ok 向下转型}
}
02:
package PolyDemoWork;public class Base {int cnt = 10;public void display(){System.out.println(this.cnt);}
}class Sub extends Base{int cnt = 20;public void display(){System.out.println(this.cnt);}}//==============================================================================package PolyDemoWork;public class PolyDemo {public static void main(String[] args){Sub s = new Sub();System.out.println(s.cnt);//20s.display();//20Base b = s;System.out.println(b==s);//trueSystem.out.println(b.cnt);//10b.display();//20}
}
java的动态绑定机制
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rt7omtRd-1634378483144)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210914131536063.png)]](https://img-blog.csdnimg.cn/15d288eecedb441a87a791b9fdac7ca3.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
01:
package PolyDemoWork02;public class A {public int i = 10;public int sum(){return get()+10;}public int sum1(){return i+10;}public int get(){return i;}}//====================================================================================package PolyDemoWork02;public class B extends A{public int i = 20;public int sum(){return i+20;}public int get(){return i;}public int sum1(){return i+10;}
}//=========================================================================================package PolyDemoWork02;public class PolyMainDemo {public static void main(String[] args) {A a = new B();System.out.println(a.sum());//40System.out.println(a.sum1());//30}
}
02:
package PolyDemoWork02;public class B extends A{public int i = 20;
// public int sum()
// {
// return i+20;
// }public int get(){return i;}public int sum1(){return i+10;}
}//====================================================================package PolyDemoWork02;public class A {public int i = 10;public int sum(){return get()+10;}public int sum1(){return i+10;}public int get(){return i;}}//==================================================================================package PolyDemoWork02;public class PolyMainDemo {public static void main(String[] args) {A a = new B();System.out.println(a.sum());//30System.out.println(a.sum1());//30}
}
03:
package PolyDemoWork02;public class B extends A{public int i = 20;
// public int sum()
// {
// return i+20;
// }public int get(){return i;}// public int sum1()
// {
// return i+10;
// }
}//====================================================================================package PolyDemoWork02;public class A {public int i = 10;public int sum(){return get()+10;}public int sum1(){return i+10;}public int get(){return i;}}//==============================================================================package PolyDemoWork02;public class PolyMainDemo {public static void main(String[] args) {A a = new B();System.out.println(a.sum());//30System.out.println(a.sum1());//20}
}
多态的应用
多态数组

01:
package Person;public class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public String say(){return name+" "+age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}//=========================================================package Person;public class Student extends Person{private double score;public Student(String name, int age, double socre) {super(name, age);this.score = socre;}public double getSocre() {return score;}public void setSocre(double socre) {this.score = socre;}@Overridepublic String say() {return super.say()+" score = "+score;}
}//==========================================================================package Person;public class Teacher extends Person{private double sal;public Teacher(String name, int age, double sal) {super(name, age);this.sal = sal;}public double getSal() {return sal;}public void setSal(double sal) {this.sal = sal;}@Overridepublic String say() {return super.say()+" sal = "+sal;}
}//==========================================================================package Person;public class PolyArray {public static void main(String[] args){Person[] persons = new Person[3];persons[0] = new Person("Tom",20);persons[1] = new Student("Jack",30,100);persons[2] = new Teacher("Bob",33,4500);for (int i = 0;i<persons.length;i++){persons[i].say();}}
}
02:
package Person;public class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public String say(){return name+" "+age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}//=================================================================================package Person;public class Student extends Person{private double score;public Student(String name, int age, double socre) {super(name, age);this.score = socre;}public double getSocre() {return score;}public void setSocre(double socre) {this.score = socre;}@Overridepublic String say() {return super.say()+" score = "+score;}public void study(){System.out.println("student = "+getName());}
}//=========================================================================package Person;public class Teacher extends Person{private double sal;public Teacher(String name, int age, double sal) {super(name, age);this.sal = sal;}public double getSal() {return sal;}public void setSal(double sal) {this.sal = sal;}@Overridepublic String say() {return super.say()+" sal = "+sal;}public void teach(){System.out.println("teacher = "+getName());}
}//=============================================================================package Person;public class PolyArray {public static void main(String[] args){Person[] persons = new Person[3];persons[0] = new Person("Tom",20);persons[1] = new Student("Jack",30,100);persons[2] = new Teacher("Bob",33,4500);for (int i = 0;i<persons.length;i++){if (persons[i] instanceof Student){((Student)persons[i]).study();}else if (persons[i] instanceof Teacher){((Teacher)persons[i]).teach();}else if (persons[i] instanceof Person){}else{System.out.println("Error");}}}
}
多态参数
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gENuSoP5-1634378483146)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210914195648455.png)]](https://img-blog.csdnimg.cn/66f94cab63b945789d91a372e2d568ec.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
01:
package TestPolyDemo;public class Employee {private String name;private double salary;public Employee(String name, double salary) {this.name = name;this.salary = salary;}public double getAnnual(){return 12*salary;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary = salary;}}//=====================================================================package TestPolyDemo;public class Worker extends Employee{public Worker(String name, double salary) {super(name, salary);}public void work(){System.out.println("worker = "+getName()+"working!!!");}@Overridepublic double getAnnual() {return super.getAnnual();}
}//==============================================================================package TestPolyDemo;public class Manager extends Employee{private double bonus;public Manager(String name, double salary, double bonus) {super(name, salary);this.bonus = bonus;}public double getBonus() {return bonus;}public void setBonus(double bonus) {this.bonus = bonus;}public void manage(){System.out.println("manager" + getName()+"is managing");}@Overridepublic double getAnnual() {return super.getAnnual()+bonus;}
}//======================================================================package TestPolyDemo;public class TestWorkDemo {public static void main(String[] args){Worker tom = new Worker("tom",2500);Manager milan = new Manager("milan", 5000, 200000);TestWorkDemo testWorkDemo = new TestWorkDemo();testWorkDemo.showEmpAnnual(tom);testWorkDemo.showEmpAnnual(milan);testWorkDemo.testWork(tom);testWorkDemo.testWork(milan);}public void showEmpAnnual(Employee e){System.out.println(e.getAnnual());}public void testWork(Employee e){if (e instanceof Worker){((Worker) e).work();}else if (e instanceof Manager){((Manager) e).manage();}else{System.out.println("no");}}}
Object类
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mrc04Uwb-1634378483147)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210914200019542.png)]](https://img-blog.csdnimg.cn/1d0f0c23196345b7ba850fb6d80da29e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_19,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5zZvE84t-1634378483147)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210914200030923.png)]](https://img-blog.csdnimg.cn/9008b453c5124961ad022c448ac2e0f9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t34bQE9H-1634378483147)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210914202318014.png)]](https://img-blog.csdnimg.cn/35be14fb8e064720903224b3cf5c1d84.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EP8a9U8q-1634378483148)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210914205844909.png)]](https://img-blog.csdnimg.cn/6639bab8172b43688d4f84b20bb4d0a6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
==运算符和equals
01:
package ObjectDemo;public class Equals01 {public static void main(String[] args){A a = new A();A b = a;A c = b;System.out.println(a==c);//trueSystem.out.println(b==c);//trueB obj = a;System.out.println(obj==c);//true 地址还是一样"hello".equals("abc");//String equals
// public boolean equals(Object anObject) {
// if (this == anObject) {
// return true;
// }
// if (anObject instanceof String) {
// String aString = (String)anObject;
// if (!COMPACT_STRINGS || this.coder == aString.coder) {
// return StringLatin1.equals(value, aString.value);
// }
// }
// return false;// }//Object equals// public boolean equals(Object obj) {
// return (this == obj);
// }Integer integer1 = new Integer(1000);Integer integer2 = new Integer(1000);System.out.println(integer1 == integer2);//falseSystem.out.println(integer1.equals(integer2));//trueString str1 = new String("hspedu");String str2 = new String("hspedu");System.out.println(str1==str2);//falseSystem.out.println(str1.equals(str2));//true// Integer equals// public boolean equals(Object obj) {
// if (obj instanceof Integer) {
// return value == ((Integer)obj).intValue();
// }
// return false;// }}
}class B{}class A extends B
{}
如何重写equals方法
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C7ogxcGx-1634378483149)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210914213514400.png)]](https://img-blog.csdnimg.cn/8e8535f9eae14c11a1939df24e19854a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
01:
package EqualsExercise01;public class EqualsExercise01 {public static void main(String[] args){Person person1 = new Person("jack", 10, '男');Person person2 = new Person("jack", 10, '男');System.out.println(person1.equals(person2));}
}class Person
{private String name;private int age;private char gender;public boolean equals(Object obj){if (this==obj){return true;}if (obj instanceof Person){Person p = (Person)obj;return this.name.equals(p.name) && this.age== p.age && this.gender ==p.gender;}return false;}public Person(String name, int age, char gender) {this.name = name;this.age = age;this.gender = gender;}
}
小练习
01:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lbJWNMqU-1634378483149)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210914213528242.png)]](https://img-blog.csdnimg.cn/0ae78d43a241446db5a353cf3ed6e2eb.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
02:
public class WorkDemo {public static void main(String[] args) {int it = 65;float fl = 65.0f;System.out.println("65和65.0f是否相等?"+(it==fl));//truechar ch1 = 'A';char ch2 = 12;System.out.println("65和'A'是否相等?"+(it==ch1));//trueSystem.out.println("12和ch2是否相等?"+(12==ch2));//trueString str1 = new String("hello");String str2 = new String("hello");System.out.println((str1==str2));//falseSystem.out.println(str1.equals(str2));//true}
}
hashCode方法


toString方法
01:
package ObjectWorkDemo;public class TestDemo02 {public static void main(String[] args) {// Object的toString()源码
// public String toString() {
// return getClass().getName() + "@" + Integer.toHexString(hashCode());
// }Monster monster = new Monster("Tom", "climb", 1000);System.out.println(monster.toString()+" "+monster.hashCode());//ObjectWorkDemo.Monster@776ec8df 2003749087//Monster{name='Tom', job='climb', sal=1000.0} 1072408673System.out.println(monster);//Monster{name='Tom', job='climb', sal=1000.0}}}class Monster
{private String name;private String job;private double sal;public Monster(String name, String job, double sal) {this.name = name;this.job = job;this.sal = sal;}@Overridepublic String toString() {return "Monster{" +"name='" + name + '\'' +", job='" + job + '\'' +", sal=" + sal +'}';}
}
finalize方法
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6KRUg3Mi-1634378483152)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210914231311937.png)]](https://img-blog.csdnimg.cn/67cf84fa7fc84a4d8c788c21f552ba6f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
01:
package FinalizeDemo;public class FinalizeDemo {public static void main(String[] args){Car Bwm = new Car("Baoma");Bwm = null;System.gc();}
}class Car
{private String name;public Car(String name) {this.name = name;}@Overrideprotected void finalize() throws Throwable {System.out.println("Car destory!");}
}
大练习
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OW4qgB5s-1634378483152)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210915164432256.png)]](https://img-blog.csdnimg.cn/3913d01a619347b4be749abef16f8d63.png)
01:
package HomeWorkDemo;public class HomeWorkDemo01 {public static void main(String[] args){Person[] persons = new Person[3];persons[0] = new Person("Tom",35,"JavaEE工程师");persons[1] = new Person("jack",18,"C++工程师");persons[2] = new Person("mike",89,"Teacher");for (int i = 0;i<persons.length-1;i++){for (int j = 0;j<persons.length-1-i;j++){if (persons[j].age < persons[j+1].age){Person tmp = persons[j];persons[j] = persons[j+1];persons[j+1] = tmp;}}}for (int i = 0;i<persons.length;i++){System.out.println(persons[i]);}}
}class Person
{private String name;public int age;private String job;public Person(String name, int age, String job) {this.name = name;this.age = age;this.job = job;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", job='" + job + '\'' +'}';}
}
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OnVDZMsY-1634378483153)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210915164443657.png)]](https://img-blog.csdnimg.cn/0e65af755a85439ab29d9a50f97297fe.png)
02:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GCXy50Fm-1634378483154)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210915164628958.png)]](https://img-blog.csdnimg.cn/0c6a311f722845bf9bab1445f306d746.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kg597Tv9-1634378483154)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210915164647991.png)]](https://img-blog.csdnimg.cn/d7971f22c9d04cb2b36eb0e78914117c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
03:
package HomeWorkDemo01;public class Teacher{private String name;private int age;private String post;private double salary;private double grade;public Teacher(String name, int age, String post, double salary, double grade) {this.name = name;this.age = age;this.post = post;this.salary = salary;this.grade = grade;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getPost() {return post;}public void setPost(String post) {this.post = post;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary = salary;}public double getGrade() {return grade;}public void setGrade(double grade) {this.grade = grade;}public void introduce(){System.out.println(toString());}@Overridepublic String toString() {return "Teacher{" +"name='" + name + '\'' +", age=" + age +", post='" + post + '\'' +", salary=" + salary +", grade=" + grade +'}';}}//=================================================package HomeWorkDemo01;public class Professor extends Teacher{public Professor(String name, int age, String post, double salary, double grade) {super(name, age, post, salary, grade);}@Overridepublic void introduce() {System.out.println("this is professor");super.introduce();}
}//===================================================package HomeWorkDemo01;public class HomeWork03 {public static void main(String[] args){Professor professor = new Professor("贾宝玉", 30, "高级职称", 30000, 1.3);professor.introduce();}
}
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nLLmct48-1634378483155)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210917095200808.png)]](https://img-blog.csdnimg.cn/0d59b3fcc3da4b93a38459bde4394f5f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
04:
package HomeWork04;public class Employee {private String name;private double daySal;private int workDays;private double grade;public void printSal(){System.out.println(name+" Sal = "+daySal*workDays*grade);}public Employee(String name, double daySal, int workDays, double grade) {this.name = name;this.daySal = daySal;this.workDays = workDays;this.grade = grade;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getDaySal() {return daySal;}public void setDaySal(double daySal) {this.daySal = daySal;}public int getWorkDays() {return workDays;}public void setWorkDays(int workDays) {this.workDays = workDays;}public double getGrade() {return grade;}public void setGrade(double grade) {this.grade = grade;}
}//==================================================package HomeWork04;public class Manager extends Employee{private double bonus;public Manager(String name, double daySal, int workDays, double grade) {super(name, daySal, workDays, grade);}@Overridepublic void printSal() {System.out.println("name"+getName()+" Sal = "+(bonus+getDaySal()*getWorkDays()*getGrade()));}public double getBonus() {return bonus;}public void setBonus(double bonus) {this.bonus = bonus;}
}//==================================================package HomeWork04;public class Worker extends Employee{public Worker(String name, double daySal, int workDays, double grade) {super(name, daySal, workDays, grade);}@Overridepublic void printSal() {super.printSal();}
}//==================================================package HomeWork04;public class HomeWork04 {public static void main(String[] args){Manager manage= new Manager("刘备", 100, 20, 1.2);manage.setBonus(3000);manage.printSal();Worker worker = new Worker("关羽",50,10,1.0);worker.printSal();}}
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kmLxeixs-1634378483155)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210917095319487.png)]](https://img-blog.csdnimg.cn/60d9251b3c8a4a6e849d3e89b8269b88.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
05:
package HomeWork05;public class Worker extends Employee{public Worker(String name, double sal) {super(name, sal);}@Overridepublic void printSal() {System.out.println("Worker = ");super.printSal();}
}//==============================================package HomeWork05;public class Employee {private String name;private double sal;private int salMonth = 12;public Employee(String name, double sal) {this.name = name;this.sal = sal;}public void printSal(){System.out.println(name+" Sal = "+(sal*salMonth));}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getSal() {return sal;}public void setSal(double sal) {this.sal = sal;}public int getSalMonth() {return salMonth;}public void setSalMonth(int salMonth) {this.salMonth = salMonth;}
}//============================================package HomeWork05;public class Peasant extends Employee{public Peasant(String name, double sal) {super(name, sal);}@Overridepublic void printSal() {System.out.println("Peasant = ");super.printSal();}
}//============================================package HomeWork05;public class Teacher extends Employee{private int classDays;private double classSal;@Overridepublic void printSal() {System.out.println("name = "+getName()+" Sal = "+(getSal()*getSalMonth()+classDays * classSal));}public Teacher(String name, double sal) {super(name, sal);}public int getClassDays() {return classDays;}public void setClassDays(int classDays) {this.classDays = classDays;}public double getClassSal() {return classSal;}public void setClassSal(double classSal) {this.classSal = classSal;}
}//===============================================package HomeWork05;public class Scientist extends Employee{private double bonus;public Scientist(String name, double sal) {super(name, sal);}@Overridepublic void printSal() {System.out.println("Scientist = "+getName()+" Sal = "+getSal()*getSalMonth()+bonus);}public double getBonus() {return bonus;}public void setBonus(double bonus) {this.bonus = bonus;}
}//============================================package HomeWork05;public class HomeWork05 {public static void main(String[] args){Worker jack = new Worker("jack",1000);jack.printSal();Peasant smith = new Peasant("smith", 20000);smith.printSal();Teacher teacher = new Teacher("顺平", 2000);teacher.setClassDays(360);teacher.setClassSal(5000);teacher.printSal();Scientist scientist = new Scientist("钟南山", 20000);scientist.setBonus(2000000);scientist.printSal();}
}
06:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LMCSfm1k-1634378483155)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210917121027721.png)]](https://img-blog.csdnimg.cn/f80cf75c2b1a4b239c2390c5787d9496.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4jkhJs2a-1634378483156)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210917122312390.png)]](https://img-blog.csdnimg.cn/4d30f96ef88d4e5d8c1bc9724c458f04.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)
07:
package HomeWork07;public class Test {String name = "Rose";Test(){System.out.println("Test");}Test(String name){this.name = name;}}class Demo extends Test{String name = "jack";Demo(){super();System.out.println("Demo");}Demo(String s){super(s);}public void test(){System.out.println(super.name);System.out.println(this.name);}public static void main(String [] args){new Demo().test();new Demo("join").test();}}// Test
// Demo
// Rose
// jack
// join
// jack
08:
查看JDK源码
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LnxWLDQ9-1634378483157)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210914202421219.png)]](https://img-blog.csdnimg.cn/e6e469ff4f674fd0917aad946cd3aa1f.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vZ1TgMqG-1634378483157)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210914202431260.png)]](https://img-blog.csdnimg.cn/7d3ceac24bb647c0bd7ecf0df5492808.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_17,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vfDTRs6Q-1634378483158)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210914202439436.png)]](https://img-blog.csdnimg.cn/2e15a78699b94f489bbbef72d77802d0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_14,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8yJfIHp3-1634378483159)(C:\Users\Tom\AppData\Roaming\Typora\typora-user-images\image-20210914202452091.png)]](https://img-blog.csdnimg.cn/204c2a016fb1484189d6baa83621e28f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2VjY2NjY2NjYw==,size_20,color_FFFFFF,t_70,g_se,x_16)