java桌面 第三章包 接口 抽象类
2008-12-26 20:26
232 查看
package org.lgc;
public class 滑翔机 extends 飞机 {
public 滑翔机(){
super("滑翔机");
}
public void 起飞(){
System.out.println(this.type+"在跑道上起飞");
}
public void 降落(){
System.out.println(this.type+"在跑道上降落");
}
}
package org.lgc;
public class 直升机 extends 飞机{
public 直升机(){
super("直升机");
}
public void 起飞() {
System.out.println(this.type+"垂直起飞");
}
public void 降落() {
System.out.println(this.type+"垂直降落");
}
}
package org.lgc;
public class Test {
public static void main(String[] args) {
飞机 p = new 滑翔机();
p.起飞();
p.降落();
p.载人();
p.载物();
System.out.println("******************");
p = new 直升机();
p.起飞();
p.降落();
p.载人();
p.载物();
}
}
package org.lgc;
public interface 飞机功能 {
//所有方法前面默认都有public abstract
void 载人();
void 载物();
void 起飞();
void 降落();
}
package org.lgc;
public abstract class 飞机 implements 飞机功能 {
String type;//飞机类型
public 飞机(String type){
this.type = type;
}
public void 载人(){
System.out.println(this.type+"可以载人!");
}
public void 载物(){
System.out.println(this.type+"可以载物!");
}
}
第三章
一.static关键字
1.修饰方法。
a)被static修饰的方法称之为静态方法。它是属于类的,通过类名来访问,不建议使用对象来访问。
b)静态的方法不能访问非静态的属性和方法。但非静态的方法可以访问静态的成员。
2.修饰属性。
a)通过类名来访问。不建议使用对象访问。
b)静态的属性是属于类的。
c)静态的属性一出来就有默认值了。而非静态的属性是在创建对象时才有默认值的.
3.修饰类
a)static可以修饰内部类.
二.final关键字
1.修饰属性
a)被final修饰的属性为常量.不能二次赋值.
b)规范:一般常都会声明为public static final的.名字全部使用大写字母<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
2. 修饰方法
a)可以重载.不能重写
3. 修饰类(最终类)
a)被final修饰的类不能被继承.典型的类:String,Math
三.打包package和导包import
1.打包package:解决类重命的问题.是一个习惯.必须写在第一句
包命名:网站www.xdsvse.com,包命名是一个反的:com.xdsvse.org.lgc.org.hsl
2.导包import:导入其它位置的类到当前.系统会默认的帮我们导入java.lang包
可以写多句,写在类外
编写java文件的顺序:package -> import ->class
四.访问修饰符
注意:只有默认和public能够修饰类。被public修饰的类必须和文件同名
面向对象回顾:
1. 封装
a) 将属性和方法写在类中
b) 属性应该都是私有(private),是通过公有(public)的get和set方法来访问和赋值。
2. 继承
a) Java中的继承:单继承。
b) 继承时子类会继承父类所有的属性和方法
c) 私有的属性和方法会被继承,但不能使用
d) 构造方法不能被继承
e) 子类的构造方法中默认都会有一句super( )
3. 多态
a) 重载:同一个类中有多个方法名字一样,但参数的个数或参数的数据类型不一致。
b) 重写:子类中有方法和父类的方法一样。
c) 父类的引用存放子类的对象:
i. 能访问父类:所有属性,没有被重写的方法
ii. 能访问子类:只能访问重写父类的方法。
一.抽象类(abstract)
a) 修饰类:抽象类可以写得跟一般的类一模一样。
b) 修饰方法:抽象方法,不能有方法体的。(直接将一对{ }大括号换成;分号)
c) 抽象类中可以没有抽象方法,但抽象方法必须写在抽象类中。
d) 抽象类不能被实例化。但可以写构造方法。
e) 子类必须重写抽象类中的所有抽象方法。(注意:重写时访问修饰必须>=父类方法的访问修饰)。
反之:如果一个类继承了抽象类,而又没有重写抽象方法,且程序正确。那么这个类一定是抽象类。
f) 应用:如果多个类有相同的方法且做一样的事情,也有相同的方法,但做的事情不一样,此时我们将写一个抽象类,把做一样事情的方法写在抽象类中,把做不一样事情的方法写成抽象方法。
二.接口(interface):为了弥补Java单继承的不足。
a) 类不能继承接口,而是实现接口。使用implements关键字
b) 类可以实现多个接口
c) 接口中所有的属性都是public static final
d) 接口中所有的方法都是public abstract
e) 一个类实现了接口,必须重写接口中的所有方法。
反之:如果一个类实现了接口,而又没有重写抽象方法,且程序正确。那么这个类一定是抽象类。
f) 应用:将多个类都有的方法全部写在接口中。
接口和抽象类结合应用:
1. 将多个类中都有的方法全部写到接口中
2. 将多个类中相同的方法写到抽象类中,由抽象类来实现接口。
3. 由子类来继承抽象类。
public class 滑翔机 extends 飞机 {
public 滑翔机(){
super("滑翔机");
}
public void 起飞(){
System.out.println(this.type+"在跑道上起飞");
}
public void 降落(){
System.out.println(this.type+"在跑道上降落");
}
}
package org.lgc;
public class 直升机 extends 飞机{
public 直升机(){
super("直升机");
}
public void 起飞() {
System.out.println(this.type+"垂直起飞");
}
public void 降落() {
System.out.println(this.type+"垂直降落");
}
}
package org.lgc;
public class Test {
public static void main(String[] args) {
飞机 p = new 滑翔机();
p.起飞();
p.降落();
p.载人();
p.载物();
System.out.println("******************");
p = new 直升机();
p.起飞();
p.降落();
p.载人();
p.载物();
}
}
package org.lgc;
public interface 飞机功能 {
//所有方法前面默认都有public abstract
void 载人();
void 载物();
void 起飞();
void 降落();
}
package org.lgc;
public abstract class 飞机 implements 飞机功能 {
String type;//飞机类型
public 飞机(String type){
this.type = type;
}
public void 载人(){
System.out.println(this.type+"可以载人!");
}
public void 载物(){
System.out.println(this.type+"可以载物!");
}
}
第三章
一.static关键字
1.修饰方法。
a)被static修饰的方法称之为静态方法。它是属于类的,通过类名来访问,不建议使用对象来访问。
b)静态的方法不能访问非静态的属性和方法。但非静态的方法可以访问静态的成员。
2.修饰属性。
a)通过类名来访问。不建议使用对象访问。
b)静态的属性是属于类的。
c)静态的属性一出来就有默认值了。而非静态的属性是在创建对象时才有默认值的.
3.修饰类
a)static可以修饰内部类.
二.final关键字
1.修饰属性
a)被final修饰的属性为常量.不能二次赋值.
b)规范:一般常都会声明为public static final的.名字全部使用大写字母<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
2. 修饰方法
a)可以重载.不能重写
3. 修饰类(最终类)
a)被final修饰的类不能被继承.典型的类:String,Math
三.打包package和导包import
1.打包package:解决类重命的问题.是一个习惯.必须写在第一句
包命名:网站www.xdsvse.com,包命名是一个反的:com.xdsvse.org.lgc.org.hsl
2.导包import:导入其它位置的类到当前.系统会默认的帮我们导入java.lang包
可以写多句,写在类外
编写java文件的顺序:package -> import ->class
四.访问修饰符
关键字 | 本类 | 同包子类 | 同包它类 | 包外子类 | 包外它类 |
private私有 | 是 | 否 | 否 | 否 | 否 |
默认 | 是 | 是 | 是 | 否 | 否 |
protected受保护 | 是 | 是 | 是 | 是 | 否 |
public 公有 | 是 | 是 | 是 | 是 | 是 |
面向对象回顾:
1. 封装
a) 将属性和方法写在类中
b) 属性应该都是私有(private),是通过公有(public)的get和set方法来访问和赋值。
2. 继承
a) Java中的继承:单继承。
b) 继承时子类会继承父类所有的属性和方法
c) 私有的属性和方法会被继承,但不能使用
d) 构造方法不能被继承
e) 子类的构造方法中默认都会有一句super( )
3. 多态
a) 重载:同一个类中有多个方法名字一样,但参数的个数或参数的数据类型不一致。
b) 重写:子类中有方法和父类的方法一样。
c) 父类的引用存放子类的对象:
i. 能访问父类:所有属性,没有被重写的方法
ii. 能访问子类:只能访问重写父类的方法。
一.抽象类(abstract)
a) 修饰类:抽象类可以写得跟一般的类一模一样。
b) 修饰方法:抽象方法,不能有方法体的。(直接将一对{ }大括号换成;分号)
c) 抽象类中可以没有抽象方法,但抽象方法必须写在抽象类中。
d) 抽象类不能被实例化。但可以写构造方法。
e) 子类必须重写抽象类中的所有抽象方法。(注意:重写时访问修饰必须>=父类方法的访问修饰)。
反之:如果一个类继承了抽象类,而又没有重写抽象方法,且程序正确。那么这个类一定是抽象类。
f) 应用:如果多个类有相同的方法且做一样的事情,也有相同的方法,但做的事情不一样,此时我们将写一个抽象类,把做一样事情的方法写在抽象类中,把做不一样事情的方法写成抽象方法。
二.接口(interface):为了弥补Java单继承的不足。
a) 类不能继承接口,而是实现接口。使用implements关键字
b) 类可以实现多个接口
c) 接口中所有的属性都是public static final
d) 接口中所有的方法都是public abstract
e) 一个类实现了接口,必须重写接口中的所有方法。
反之:如果一个类实现了接口,而又没有重写抽象方法,且程序正确。那么这个类一定是抽象类。
f) 应用:将多个类都有的方法全部写在接口中。
接口和抽象类结合应用:
1. 将多个类中都有的方法全部写到接口中
2. 将多个类中相同的方法写到抽象类中,由抽象类来实现接口。
3. 由子类来继承抽象类。
相关文章推荐
- java中抽象类和接口的区别?
- 详细解析Java中抽象类和接口的区别
- 接口和抽象类的区别-java
- 深入理解Java的接口和抽象类
- 【转】java关键字final ,抽象类、接口介绍
- JAVA中的接口和抽象类(转)
- 解析Java中抽象类和接口的区别
- java中接口和抽象类的区别
- java 接口与抽象类的区别
- java-接口,接口和抽象类的区别
- Java基础笔记-继承、抽象类、接口、多态、内部类、异常
- 详细解析Java中抽象类和接口的区别
- JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展
- java中抽象类与接口中方法访问修饰符问题 (
- Java中抽象类与接口的区别
- Java基础知识整理二(抽象类、接口…
- Java中抽象类和接口的区别
- [转]深入理解Java的接口和抽象类
- java基础(六)——面向对象_继承、抽象类、接口
- java中的抽象类和接口区别于联系