java中类的继承特性
继承性
主要是利用特定对象之间共有的属性和行为,根据这些属性和行为组成一个公共类(父类)。然后根据父类进行拓展,也就是在父类原有的属性和行为上加上新的特性,制定出一个新的类(子类)。子类可以重写父类的方法。
继承格式:
权限修饰符 class 子类名称 extends 父类名称(){}
public class zi extends fu(){}
注意事项:
1.子类可以重写父类的权限修饰符,但是仅限于从小的范围到大的范围改变,保证子类权限修饰符必须保证【大于等于】父类权限修饰符。
小扩展提示: public > protected > (default) > private
2. 子类调用父类的内容通过super关键词进行调用。
3.子类不可以调用父类带有private权限修饰符的内容。
4.子类可以重写父类的方法和发返回值类型,重写的时候必须保证父子类方法名称及参数名称相同,但仅限于J2SE.5.0以上版本。
package day6;
public class day6 {
public static void main(String[] args) {
fu fu=new fu();
fu.method();
zi zi=new zi();
zi.method();
fu.method();//子类重写父类的方法,仅对子类本身有效,对父类没有影响。
}
//父类文件
public class fu{
int num=20;
private String name="私有不能被调用";
protected void method(){
System.out.println("我是一个手机,我能电话");
System.out.println("------------------------------");
}
}
//子类文件
public class zi extends fu{//继承父类
//将父类的method方法权限修饰符修改为public,private void method(){}错误写法。
public void method(){//4.方法名称必须相同
//使用super关键词调用父类的变量num
System.out.println("我调用了父类的num值:"+super.num); //2使用super调用父类
super.method();//调用父类原有的方法的内容
System.out.println("我是一个新手机,我还能发信息,");
}
}
}
5.在继承中,父类的变量和方法在没有特殊说明下,子类可以使用,子类的子类也可以使用。
运行文件
public class animalMain {
public static void main(String[] args) {
jinmao jinmao=new jinmao();//创建对象
jinmao.eat();
jinmao.sleep();
}
}
父类文件
public class animal {
public void sleep();
public void eat();
}
子类文件
public class dog extends animal {
public void eat(){
System.out.println("吃肉");
}
}
子类的子类文件
public class jinmao extends dog{
public void sleep(){
System.out.println("二哈真二");
}
public void eat(){
System.out.println("我喜欢吃骨头");
}
}
继承中变量和方法重名如何区别?
public static void main(String[] args) {
zi zi=new zi();
zi.method();//调用子类的方法
}
//父类文件
public class fu{
int num=10;//父类变量
}
//子类文件
public class zi extends fu{
int num=20;//子类成员变量
@Override
public void method(){
int num=30;//子类局部变量
System.out.println("我是子类的局部变量"+num);
System.out.println("我是子类的成员变量"+this.num);//调用本身用this
System.out.println("我是父类的成员变量"+super.num);//调用父类用super
}
}
}