package yyyy;
//变量隐藏与方法覆盖
public class Testc {
public static void main(String[] args) {
Person std=new Person();
std.showAddr();
Student p=new Student();
p.showInfo();
}
}
class Person{
String id;
String name;
String address="1000";
public void showAddr(){
System.out.println(address);
}
}
class Student extends Person{
String address="1008";
public void showInfo(){
showAddr();//当子类调用父类的方法时,处理的是父类的变量 。当子类调用自己所写的方法是处理的是自己的变量,父类的变量将被隐藏
System.out.println("Student:"+address);
}
}
//方法的覆写
//覆盖(重写)是子类根据需要重新定义继承自父类的方法,使子类具有自己的行为。
//子类中的重写的方法应与父类中的被覆盖的方法有完全相同的:方法名称、参数列表、返回值类型。
//重写时,修改方法的修饰权限只能从小到大
// private <default<protected<public
class My{
protected String s="a member of aaa";
protected void test(){
System.out.println(s);
}
}
public class Testc extends My{
public String s="bbbb";
public void test(){
super.test();
System.out.println(s);
}
public static void main(String[] args){
Testc msc=new Testc();
System.out.println(msc.s);
msc.test();
}
}
class A{
int x=1234;
void show(){
System.out.println("class A:");
}
}
class B extends A{
double x=567.89;
void show(){
super.show();
System.out.println("calss B:");
}
}
class C extends B{
char x='c';
void showABC(){
System.out.println(super.x);
System.out.println(x);
super.show();
show(); }
void show(){
System.out.println("class C:"); }
}
public class Testc{
public static void main(String args[]){
C cc=new C();
cc.showABC(); }
}
变量的隐藏与方法的覆盖
最新推荐文章于 2023-03-25 10:57:19 发布