关键字:
extends 继承使用的关键字
格式:
class A extend B {
}
A类是B类的一个子类
B类是A类的【唯一父类】
Java继承采用的是单继承方式!!!
子类有且只能有一个父类
package com.qfedu.a_extends;classA{// 成员变量 publicint num;private String name;// 成员方法publicvoidtest(){
System.out.println("public修饰公开成员方法");}privatevoidtestPrivate(){
System.out.println("private修饰私有化成员方法");}}/*
* B类是A类的一个子类,A类是B类的唯一父类。Java是一门单继承语言
*/classBextendsA{}/*
* public修饰的类要求和当前文件名一致!!!
*/publicclassDemo1{publicstaticvoidmain(String[] args){
A a =newA();
a.num =10;// 私有化 成员变量类外不能使用// a.name = "苟磊";
a.test();// The method testPrivate() from the type A is not visible// a.testPrivate();
B b =newB();// 子类可以通过继承使用父类非私有化成员变量
b.num =10;// 子类不可以使用父类私有化成员变量,私有化成员变量有且只能在父类类内使用// b.name = "苟磊";// 子类可以通过继承使用父类非私有化成员方法
b.test();// 子类不能使用父类中的私有化成员方法,私有化成员方法有且只能在父类类内使用// b.testPrivate();}}
语法:
子类继承父类,在父类中的abstract方法,子类要求强制重写。
错误处理1:
Abstract methods do not specify a body
abstract修饰的方法没有方法体
The type LOLHero must be an abstract class to define abstract methods
LOLHero类必须是一个abstract修饰的类,才可以定义abstract修饰的方法。
Ctrl + 1 快速修复
选择 Remove Method Body 删除方法体
错误处理2:
The abstract method q in type LOLHero can only be defined by an abstract class
在LOLHero类中使用abstract关键字修饰的q方法有且只能定义在一个abstract修饰的类内
The type LOLHero must be an abstract class to define abstract methods
LOLHero类必须是一个abstract修饰的类,才可以定义abstract修饰的方法。
Ctrl + 1 快速修复
选择 Make Type 'LOLHero' abstract 让当前类变成一个abstract修饰的类
错误处理3:
The type Thresh must implement the inherited abstract method LOLHero.q()
Thresh类必须实现通过继承得到的LOLHero类内的abstract方法q
The type HappyWindBoy must implement the inherited abstract method LOLHero.q()
HappyWindBoy类必须实现通过继承得到的LOLHero类内的abstract方法q
Ctrl + 1 快速修复:
选择 Add unimplemented methods 添加未实现的方法
package com.qfedu.b_final;classPerson{
String name;int age;}publicclassDemo2{publicstaticvoidmain(String[] args){/*
* final修饰的是Person类对象 person,person同时也是一个
* 引用数据类型的变量,也就是说当前person的指向不能发生任何的改变
* 但是不影响person指向空间的内容可以进行修改操作
*
* 例如:
* 房本上地址不能变
* 房子装修随便你
*/final Person person =newPerson();/*
* The final local variable person cannot be assigned.
* It must be blank and not using a compound assignment
*///*// person = new Person(); // 1 错误
person.name ="苟磊";// 2
person.age =16;// 3//*/}}