- 格式:public class 子类名 extends 父类名(){}
- 父类也叫基类,超类
- 子类也叫派生类
- 继承中子类的特点:
子类可以有父类的内容也可以有自己的内容 - 什么时候用继承:
当有两个类A和B时,若A包括在B中,或者B包括在A中,则可以使用继承
this和super在继承中的使用
public class demo {public static void main(String[] args) {zi a = new zi();
a.show();
}
}
public class fu
{int p = 10;
}
public class zi extends fu{int p=20;
public void show()
{int p=30;
System.out.println(p);
//使用this访问此类的p
System.out.println(this.p);
//使用super访问父类的p
System.out.println(super.p);
}
}
输出:
30
20
10
【Java学习笔记|Java学习笔记(4)(继承)】
文章图片
- 每一个子类构造方法时,第一个语句默认为super(),即调用父类的无参构造方法
- 若super(带参),则会调用父类的带参构造方法完成父类带参构造方法的初始化
- 方法重写:子类可定义与父类同名的方法,并对该方法进行重写或者改进
public class demo {public static void main(String[] args) {NewPhone np = new NewPhone();
np.call("ywq");
}
}
public class Phone {public void call(String name)
{System.out.println("给"+name+"打电话");
}
}
public class NewPhone extends Phone{@Override//可以检验重写的方法是否跟父类一样
public void call(String name)
{System.out.println("给"+name+"视频通话");
// System.out.println("给"+name+"打电话");
super.call(name);
}
}
- 重写方法的注意事项:父类中的私有方法,子类是没法重写的,但是你依旧可以定义重名的方法,只是不再是方法重写。
- java继承的注意事项:只能单继承,支持多层继承
例子:
public class Demo {public static void main(String[] args) {cat c = new cat(3,"加菲猫");
dog d = new dog(2,"zhuzhu");
System.out.println(c.getName()+","+c.getAge());
c.miao();
System.out.println(d.getName()+","+d.getAge());
d.wang();
}
}public class animal {private int age;
private String name;
public animal(){
}
public animal(int age, String name) {this.age = age;
this.name = name;
}public int getAge() {return age;
}public void setAge(int age) {this.age = age;
}public String getName() {return name;
}public void setName(String name) {this.name = name;
}
}public class dog extends animal{//无参构造
public dog()
{
}
//有参构造
public dog(int age,String name) {super(age,name);
}
public void wang()
{System.out.println("汪汪汪");
}
}public class cat extends animal{public cat(){
}
public cat(int age,String name)
{super(age,name);
}
public void miao()
{System.out.println("喵喵喵");
}
}
推荐阅读
- 游戏|2020级C语言大作业 - 小球进框
- 【项目实战】用 Java 写了一个类QQ界面聊天小项目,可在线聊天!
- Java并发编程|并发编程(九)J.U.C 之 ConcurrentHashMap原理
- Java基础知识和回顾|Java的数据类型转换以及运算符优先级
- java|mac上安装编译器
- Java毕设课设|计算机实战项目之 含论文+辩论PPT+源码等]微信小程序基于微信小程序的校园跑腿+后台管理系统
- 我的开源代码被大公司盗用后(有人承认,有人让我滚!!)
- 算法|1357篇ECCV 2020论文打包下载!奖项公布(李飞飞高徒获最佳论文奖)
- 职场|自学Python6个月,找到了月薪8K的工作,多亏了这套学习方式