4.2Final关键字
- 修饰类不能被子类继承
- 修饰方法不能被子类重写
- 修饰的变量是常量只能被赋值一次,而且定义后必须赋值不然JVM会报错
4.3抽象类与接口
- abstrat抽象修饰符
- 根据描述是方法常用来描述类的行为特征,但这些方法实现方式无法确定
4.3.1 接口
关键字:interface and implements
- [public] interface 接口名[extends 接口1,接口2……]{
- [public][static][final]数据类型 常量名=常量值;
- [public][abstract]返回值 抽象方法名(参数列表);
- }
- 接口中的方法都是抽象的不能被实例化对象;
- 接口中属性只能是常量;
- 当一个类实现接口时,如果这个类是抽象类,那么则实现接口中部分方法即可,否则需要实现接口中所有方法
- 一个类通过implements实现接口可以实现多个接口,被实现接口之间用,隔开。
- 一个类在继承另一个类同时还可以实现接口,方法extends在前implements在后
- 如: class Dog extends Can implements Animal{
- 先继承,在实现
- }
package D5;
//定义接口Animal
interface Animal{
//定义全局常量默认修饰符是public static final
String name="动物的行为";
void shout(); //定义抽象方法默认修饰符public abstract
void breathe() ;
void run();
}
//令定义LandAnimal接口 继承Animal
interface LandAnimal extends Animal{
void LiveOnLand();
interface Animal{
//定义全局常量默认修饰符是public static final
String name="动物的行为";
void shout(); //定义抽象方法默认修饰符public abstract
void breathe() ;
void run();
}
//令定义LandAnimal接口 继承Animal
interface LandAnimal extends Animal{
void LiveOnLand();
}
//Dog类实现Animal接口
abstract class Dog implements LandAnimal{ //
//实现shout方法
@Override
public void run() {
// TODO 自动生成的方法存根
System.out.println(name+":"+"奔跑");
}
@Override
public void LiveOnLand() {
// TODO 自动生成的方法存根
System.out.println(name+":"+"生活在陆地");
}
}
class Dogs extends Dog {
public void shout() {
System.out.println(name+":"+"叫");
}
@Override
public void breathe() {
// TODO 自动生成的方法存根
System.out.println(name+":"+"呼吸");
}
}
public class Port1 {
//Dog类实现Animal接口
abstract class Dog implements LandAnimal{ //
//实现shout方法
@Override
public void run() {
// TODO 自动生成的方法存根
System.out.println(name+":"+"奔跑");
}
@Override
public void LiveOnLand() {
// TODO 自动生成的方法存根
System.out.println(name+":"+"生活在陆地");
}
}
class Dogs extends Dog {
public void shout() {
System.out.println(name+":"+"叫");
}
@Override
public void breathe() {
// TODO 自动生成的方法存根
System.out.println(name+":"+"呼吸");
}
}
public class Port1 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Dogs dog=new Dogs(); //创建Dog类实例对象
dog.shout(); // 调用Dog类的shout()方法
dog.breathe();
}
// TODO 自动生成的方法存根
Dogs dog=new Dogs(); //创建Dog类实例对象
dog.shout(); // 调用Dog类的shout()方法
dog.breathe();
}
}
//-------以上是Port接口练习
package D4;
//定义抽象类Animal
abstract class Animal{ //必须注意一个类包含抽象方法这个类必须相同*
//定义抽象方法shout
abstract void shout(); //抽象类不能被调用因为没有或没有方法体*
abstract class Animal{ //必须注意一个类包含抽象方法这个类必须相同*
//定义抽象方法shout
abstract void shout(); //抽象类不能被调用因为没有或没有方法体*
}
//定义抽象类Animal子类Dog
class Dog extends Animal{ //若想调用必须构造Animal类的子类通过子类调用*
//
void shout(){
System.out.println("WangWang");
}
}
public class Example06 {
//定义抽象类Animal子类Dog
class Dog extends Animal{ //若想调用必须构造Animal类的子类通过子类调用*
//
void shout(){
System.out.println("WangWang");
}
}
public class Example06 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Dog dog=new Dog(); //创建Dog类实例对象
dog.shout(); // 调用Dog对象的shout()方法
}
// TODO 自动生成的方法存根
Dog dog=new Dog(); //创建Dog类实例对象
dog.shout(); // 调用Dog对象的shout()方法
}
//-------以上是final关键字对继承练习
----------
抽象类
final