1.继承中,访问成员变量的特点:就近原则
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、虚拟空间、营销软件、网站建设、龙马潭网站维护、网站推广。依次在 局部位置找,本类成员位置找,父类成员位置找,逐级往上.
2.出现重名的成员变量怎么办?
System.out.println(name); //就近原则:从局部位置开始找 System.out.println(this.name); //this:从本类成员变量位置开始找 System.out.println(super.name); //super:从本类继承的父类的成员位置开始找
public class Test {
public static void main(String[] args) {
Zi z = new Zi();
z.ZiShow();
}
}
class Fu{
String name = "Fu";
}
class Zi extends Fu{
String name = "Zi";
public void ZiShow(){
String name = "ZiShow";
System.out.println(name); //就近原则:ZiShow
System.out.println(this.name); //this:从本类成员变量位置开始找:Zi
System.out.println(super.name); //super:从本类继承的父类的成员位置开始找:Fu
}
二 继承中:成员方法的访问特点1.直接调用满足就近原则.
2.super调用,直接访问父类.
public class Test {
public static void main(String[] args) {
Student s = new Student();
s.lunch();
}
}
class Person{
public void eat(){
System.out.println("吃米饭,吃菜");
}
public void drink(){
System.out.println("喝开水");
}
}
class Student extends Person{
public void lunch(){
//使用this关键字:先在本类中查看eat和drink方法,如果没有,就会调用从父类继承下来的方法.
this.eat(); //吃米饭,吃菜
this.drink(); //喝开水
//使用super关键字:直接从父类中调用方法
super.eat(); //吃米饭,吃菜
super.drink(); //喝开水
}
}
三 方法的重写1.适用情况:当父类方法不能满足子类现在的需求时,需要进行方法的重写
2.书写格式:在继承体系中,子类出现和父类一模一样的方法声明,就称子类这个方法是 重写的方法.
3.@Override重写注释:把这个注释加在重写方法上,虚拟机会校验子类重写时语法是否正确.
4.方法重写的要求:
①重写方法的 名称、形参列表 必须与父类中的一致.
②子类重写父类方法时,访问权限子类必须大于等于父类空着不写 ③子类重写父类方法时.返回值类型必须小于等于父类 ④建议:重写的方法尽量和父类保持一致. ⑤只有被添加到虚方法表中的方法(非private,非static,非final修饰的方法)才能被重写. 练习: 画图设计继承结构: 代码: 父类 三个子类 测试类: 你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧public class Dog {
public void eat(){
System.out.println("吃狗粮");
}
public void drink(){
System.out.println("喝水");
}
public void guard(){
System.out.println("看家");
}
}
public class Huskie extends Dog {
public void breakHome(){
System.out.println("拆家");
}
}
public class Sharpei extends Dog{
@Override
public void eat(){
super.eat(); //在父类的基础上,又添加了其他行为,直接调用父类的行为就行.
System.out.println("吃骨头");
}
}
public class ChineseDog extends Dog{
//中华田园犬完全用不到父类中的代码,所以不用super
@Override
public void eat(){
System.out.println("吃剩饭");
}
}
public class Test {
public static void main(String[] args) {
Huskie h = new Huskie();
h.eat();
h.drink();
h.guard();
h.breakHome();
Sharpei s = new Sharpei();
s.eat();
s.drink();
s.guard();
ChineseDog c = new ChineseDog();
c.eat();
c.drink();
c.guard();
}
}
名称栏目:Java基础知识——继承中成员变量和成员方法的特点、方法重写-创新互联
网站链接:http://scgulin.cn/article/ddesgj.html