继承:
子类继承父类就默认继承了父类的全部成员变量
JAVA语言具有继承的单一性
super:
子类的构造方法中一定会调用父类的某个构造方法。这时可以用子类的构造方法中通过super指定调用父类的哪个构造方法,如果没有指定,在实例化子类对象时,会自动调用父类无参的构造方法
class Animal {
//无参的构造方法
Animal(){
System.out.println("我是一只单身狗");
};
//有参的构造方法
Animal(String name){
System.out.println("我是一只"+name);
}:
}
class Dog extends Animal{
Dog(){};
}
class test {
public void static void main(String[] args){
Dog dog = new Dog();
}
}
在控制台会得到的是:
我是一只单身狗
final关键字:
(1)final修饰的类不能被继承
(2)final修饰的方法不能被子类重写
(3)final修饰的变量是常量
abstract关键字:
不包含方法体的方法叫抽象方法,含抽象方法的类都是抽象类,但抽象类可以不包含任何抽象方法
特点:
抽象类不能实例化,如果想调用抽象类中的方法,需在子类中将抽象类中的抽象方法进行实现。
(即子类实现了抽象方法,即有了方法体之后就可以进行实例化了)
Example10.java
abstract class Animal {
abstract void shout();
}
class Dog extends Animal {
void shout(){
System.out.println("wangwang..");
}
}
class Test {
public void static main(String[] args){
Dog dog = new Dog();
dog.shout();
}
接口:
如果一个抽象类中的所有方法都是抽象的,则可以将这个类用另外一种方式来定义,即接口
接口中定义的方法默认使用:public abstract来修饰,即抽象方法
Example11.java
interface Animal {
void breathe();
void run();
}
class Dog implements Animal{
void breath(){
System.out.println("呼吸");
}
void run(){
System.out.println("奔跑");
}
}
class test {
public void static main(String[] args){
Dog dog = new Dog();
dog.breath();
dog.run();
}
}
还可以定义一个接口使用extents关键字去继承另一个接口
多态:
定义:在同一个方法中,这种由于参数类型不同而导致执行效果各异的现象就是多态
一个多态的典型例子:
interface Animal{
void shout();
}
class Dog {
void shout(){
System.out.println("汪汪");
}
}
class Cat {
void shout(){
System.out.println("喵喵");
}
}
class Test{
public void static main(string[] args){
Animal an1 = new Dog();
Animal an2 = new Cat();
animalShout(an1);
animalShout(an2);
}
public void animalShout(Animal an){
an.shout();
}
}
匿名内部类是实现接口的一种简便写法
实现上面的效果,用匿名内部类有两种写法:
异常:
Throwable:Error+Exception
Error:错误类,无法通过修改代码来解决问题
Exception:异常类,程序本身可以处理的错误,它有一个特殊的子类RuntimeException类,该类及其子类表示运行时异常,除此类外,其他所有子类都用于表示编译异常
throwable这个大类有三个统一的方法:
String getMessage()
void printStackTrace() 将此throwable及其追踪输出至标准错物流
void printStackTrace(PrintStream s ) ....指定的输出流
try catch 和 finally
throw关键字
其相互关系是:
throws丢出(记录)问题,然后被try。。catch捕获处理
包:
编译的时候可以指定储存位置
javac -d D:\BaiduYunGuanjia helloWorld.java
import 包名.* 导入该包下所有的类
压缩java文件变为jar包
命令行:
jar -cvf helloworld.jar cn
解压缩:
jar -xvf helloworld.jar
访问控制:
private:类访问级别
default:包访问级别
protected:子类访问级别(包类以及其他包里的子类可以访问)
public:公关访问级别
面向对象(下)over
|
|