投入地跳舞 就像没有人在一旁看着你一样
2024/4/8
5)方法重载:在方法中 方法名称相同 但参数列表不同
方法名称相同 但是参数类型或个数不一样 好处:好记
6)super (只在具有继承关系的子类中使用)
作用:
a.在子类的构造方法中调用父类的构造方法
public class EmpDao extends Parent{
//不写super为什么报错
//在子类的构造方法当中 隐含的有super() 但是是调用的是父类的无参的构造方法
public EmpDao(){
super("lisi");
}
}
练习:
A类中 有一个int属性 和一个构造方法 构造方法为int赋值
B类继承A 在B的构造方法中调用A中的构造方法
public class A {
int a;
public A(int i){
a=i;
System.out.println(a);
}
}
public class B extends A{
public B(){
super(888);
}
}
public class TestAB {
public static void main(String[] args) {
B b=new B();
}
}
练习:
C类中 有一个字符串数组 和一个构造方法 构造方法为字符数组赋值
D类继承C 在D的构造方法中调用C中的构造方法
public class C {
private String names[];
public C(String a[]){
names=a;
}
public String[] getNames() {
return names;
}
public void setNames(String[] names) {
this.names = names;
}
}
public class D extends C {
public D(String a[]){
super(a);
}
}
public class TestCD {
public static void main(String[] args) {
String a[]={"zhangsan","lisi"};
D d=new D(a);
String b[]=d.getNames();
for (int i=0;i<a.length;i++){
System.out.println(b[i]);
}
}
}
b.在子类的方法中调用父类的方法
public class E {
// 父类普通方法
public void add(int a,int b){
int c=a+b;
System.out.println(c);
}
}
public class F extends E{
//子类普通方法
public void compute(){
//在普通方法中 super可以省略
add(23,67);
super.add(24,66);
}
}
public class TestEF {
public static void main(String[] args) {
F f=new F();//new F();会执行默认构造方法
f.compute();
}
}
c.在子类的方法中访问父类的成员属性
public class E {
//非私有的属性
String name="lisi";
// 父类普通方法
public void add(int a,int b){
int c=a+b;
System.out.println(c);
}
}
public class F extends E{
//子类普通方法
public void compute(){
//在普通方法中 super可以省略
add(23,67);
super.add(24,66);
System.out.println(super.name);//访问父类中非私有的属性
System.out.println(name);
}
}
public class TestEF {
public static void main(String[] args) {
F f=new F();//new F();会执行默认构造方法
f.compute();
}
}
7)多态:一种形态有不同表现形式
(覆盖 重载都是多态的表现 一个父类可以有多个子类)
8)this:表示当前对象
public class Student {
private String stuName;
private String stuSex;
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
System.out.println(this);
this.stuName = stuName;
}
public String getStuSex() {
return stuSex;
}
public void setStuSex(String stuSex) {
this.stuSex = stuSex;
}
}
public class Test1 {
public static void main(String[] args) {
Student student=new Student();
student.setStuName("zhangsan");
System.out.println(student);
System.out.println("=======");
Student student1=new Student();
student1.setStuName("lisi");
System.out.println(student1);
}
}
Student.setStuName=this.stuName 地址相同
9)import(Java中lang下的类不需要导入 可以直接使用)
练习:创建aa.A bb.B main 在B类中使用A类
package aa;
public class A {
public void add(int a,int b){
int c=a+b;
System.out.println(c);
}
}
package bb;
import aa.A;
public class B {
public static void main(String[] args) {
A a=new A();
a.add(21,34);
}
}
13.
如果一个方法是public
调用本类中方法 直接调用就可以
同一个包下 创建对象调用
不同包下的子类 也可以调用 子类调用public方法
这样的生活 肯定可以给你带来快乐
雾都不起风
太阳升起时你未曾离开 太阳落下时希望你依然还在.
公众号