做网站文字编辑累吗,用源码做自己的网站,设计师资格证,建筑公司网站宣传建筑工地文案范文图片一#xff1a;匿名对象 只能使用一次#xff0c;每一次使用都会创建一个新的对象#xff0c;默认值和数组的默认值的规则相同。所以适用于调用一次对象的情况#xff1a;
public class ClassAnonymous {String name;public void show(){System.out.println(name真厉… 一匿名对象 只能使用一次每一次使用都会创建一个新的对象默认值和数组的默认值的规则相同。所以适用于调用一次对象的情况
public class ClassAnonymous {String name;public void show(){System.out.println(name真厉害);}
}public class AnonymousDemo {public static void main(String[] args) {new ClassAnonymous().name刘备;new ClassAnonymous().show();}
}C:\Java\jdk-17.0.11\bin\java.exe -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar5773:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin -Dfile.encodingUTF-8 -classpath C:\Test\classDemo\out\production\classDemo AnonymousDemo
null真厉害进程已结束,退出代码0我明明输入了姓名可是在我调用的时候输出的确是 null 这是因为每一次 new 都相当于创建了一次对象 二继承 继承是多态的前提
继承所要解决的就是共性问题
被继承的称为 父类基类/超类需要继承的是 子类派生类 1特点
子类可以拥有父类的内容
子类也可以拥有自己特殊的内容 2关键字extends 我们使用关键字 extends 使子类“继承父类”在使用时就将子类当作父类使用 我们可以看到子类 Mangay 里面什么都没有但是创建它的对象时却可以调用 父类的 earn方法。因此我们说子类在使用时就将当作父类使用
public class Manpeople {private String name;private int age;public void earn(){System.out.println(好好挣钱);}
}public class Mangay extends Manpeople{}public class Mandemo {public static void main(String[] args) {Mangay mnew Mangay();m.earn();}
}三成员变量调用特点 1.一般的继承
父类也是一般类也可以拥有自己的对象来调用自己的方法
子类的对象可以调用自己的方法也可以调用父类的方法
public class Fu {String name;int age;public void life(){System.out.println(生活 很美好);}
}public class Zi extends Fu{String sex;public void eat(){System.out.println(活得好就行);}
}public class FuZiDemo {public static void main(String[] args) {Fu funew Fu();fu.life(); //父类自己的方法System.out.println();Zi znew Zi();z.eat(); //子类自己的方法z.life(); //子类继承父类的方法}
}C:\Java\jdk-17.0.11\bin\java.exe -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar11226:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin -Dfile.encodingUTF-8 -classpath C:\Test\classDemo\out\production\classDemo FuZiDemo
生活很美好活得好就行
生活很美好进程已结束,退出代码02.父类子类的成员变量重名
2.1使用对象直接调用重名的成员变量
子类有该成员变量优先调用子类的成员变量没有再从父类中找
public class Fu {String name;int age100;public void life(){System.out.println(生活 很美好);}
}
public class Zi extends Fu{String sex;int age10;public void eat(){System.out.println(活得好就行);}
}public class FuZiDemo {public static void main(String[] args) {Fu funew Fu();System.out.println(fu.age);Zi znew Zi();System.out.println(z.age);//子类有优先调用子类的变量没有往上找}
}C:\Java\jdk-17.0.11\bin\java.exe -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar11822:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin -Dfile.encodingUTF-8 -classpath C:\Test\classDemo\out\production\classDemo FuZiDemo
100
10 2.2使用成员方法间接调用重名的成员变量
毫无疑问父类的对象调用自己的成员方法时使用的是自己的成员变量子类的对象调用自己的成员方法时使用的是自己的成员变量
但是子类的对象调用父类的方法时使用的是父类的成员变量即方法属于谁就使用谁的成员变量
public class Fu {String name;int age100;public void life(){System.out.println(生活 age很美好);}
}public class Zi extends Fu{String sex;int age10;public void eat(){System.out.println(age活得好就行);}
}public class FuZiDemo {public static void main(String[] args) {Fu funew Fu();System.out.println(fu.age);Zi znew Zi();System.out.println(z.age);//子类有优先调用子类的变量没有往上找fu.life();//父类自己的方法z.eat();//子类自己的方法z.life();//子类父亲中的方法}
}C:\Java\jdk-17.0.11\bin\java.exe -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar11916:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin -Dfile.encodingUTF-8 -classpath C:\Test\classDemo\out\production\classDemo FuZiDemo
100
10
生活100很美好
10活得好就行
生活100很美好进程已结束,退出代码03总结
我们来总结一下
对于使用对象直接调用重名的成员变量时关键看谁有即子类有就调用子类的没有就往父类中找
对于使用方法间接调用重名的成员变量时成员变量属于谁就调用谁中的成员变量 四子类、父类和子类局部变量重名 局部变量的调用直接输出
本类成员变量的输出this.成员变量 ;
父类成员变量的输出super. 成员变量
public class Fu01 {String name刘备备;
}public class Zi01 extends Fu01 {String name曹操操;public void life(){String name吕小布;System.out.println(name);System.out.println(this.name);System.out.println(super.name);}
}public class Demo01 {public static void main(String[] args) {Zi01 znew Zi01();z.life();}
}五成员方法的调用 成员方法重名时子类有调用子类的成员方法子类没有再往上找 public class Fu01 {String name刘备备;public void life(){System.out.println(这是父类的成员方法);}
}public class Zi01 extends Fu01 {String name曹操操;public void life(){System.out.println(这是子类的成员方法);}
}public class Demo01 {public static void main(String[] args) {Zi01 znew Zi01();z.life();//子类有优先调用子类的成员方法}
}C:\Java\jdk-17.0.11\bin\java.exe -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar12667:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin -Dfile.encodingUTF-8 -classpath C:\Test\classDemo\out\production\classDemo Demo01
这是子类的成员方法进程已结束,退出代码0