如:
public class Fu {
Fu(){
System.out.println("父类无参构造函数调用");
}
Fu(int age){
System.out.println("父类有参构造函数调用");
}
}
public class Zi extends Fu{
Zi(){
System.out.println("子类无参构造函数调用");
}
Zi(int age){
System.out.println("子类有参构造函数调用");
}
}
public class demo {
public static void main(String[] args) {
//创建子类对象,子类会执行父类的无参构造函数
Zi z=new Zi();
System.out.println();
Zi z2=new Zi(20);
}
}
运行结果:
如:如果父类没有无参构造函数子类将报错,也就是如果子类有构造函数,继承的父类应该有无参构造函数,如果没有可以使用super调用父类有参构造函数。
测试代码:
public class Phone {
public void call(String name){
System.out.println("给"+name+"打电话");
}
}
public class NewPhone extends Phone{
public void call(String name){
System.out.println("开启视频模式");
System.out.println("给"+name+"打电话");
}
}
public class demo {
public static void main(String[] args) {
Phone p=new Phone();
p.call("周星驰");
System.out.println();
NewPhone p2=new NewPhone();
p2.call("刘德华");
}
}
运行结果:
测试:
public class Fu {
private void show(){
System.out.println("父类show方法被调用");
}
public void method(){
System.out.println("父类method方法被调用");
}
void method2(){
System.out.println("父类method方法被调用");
}
}
public class Zi extends Fu{
/* 报错 私有方法不能被重写
@Override
private void show(){
System.out.println("子类show方法被调用");
}
*/
public void method(){
System.out.println("子类method方法被调用");
}
/*
报错 访问权限不能更低 public>默认>private
父类method2方法为默认,子类可为public或者默认
@Override
private void method2(){
System.out.println("父类method方法被调用");
}
*/
}