extends && implements
final声明的类不能被继承
方法的重写(@Override): 两同两小一大原则:
方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型(java里无论怎样都对)
子类抛出异常小于等于父类方法抛出异常(不能抛出新的异常或比父类范围宽泛的异常)
子类访问权限大于等于父类方法访问权限
不能重写final声明方法,
重写static方法只能是static的
继承中方法的重写
1 package test;
public class ExtendTest {
static class A{
public A() {
System.out.println("A 被创建!");
}
public void t(){
System.out.println("输出 A ");
}
}
static class B extends A{
public B() {
System.out.println("B 被创建!");
}
@Override
public void t() {
System.out.println("输出 B");
}
public void k() {
System.out.println(" 方法 K");
}
}
public static void main(String[] args) {
/**
* 1.
*/
A a1 = new A();
B b1 = new B();
a1.t();
b1.t();
// result: A 被创建!
// A 被创建!
// B 被创建!
// 输出 A
// 输出 B
/**
* 2.
*/
A a2 = new A();
A b2 = new B();
a2.t();
b2.t();
// result: A 被创建!
// A 被创建!
// B 被创建!
// 输出 A
// 输出 B
// /**
// * 3.
// */
//
// A a3 = new A();
// A b3 = new B();
// b3.k();
// result: 编译错误
}
继承类加载顺序 1 import java.util.ArrayList;
import java.util.List;
import javax.swing.plaf.synth.SynthScrollBarUI;
public class Dome {
static class a{
static { System.out.println(" static a");}
{System.out.println(" class a");}
public a() {System.out.println(" construct a ");}
public void t() {};
}
static class b extends a{
static { System.out.println(" static b");}
{System.out.println(" class b");}
public b() {System.out.println("construct b");}
public b(int i){this()}
public void t() {
System.out.println(super.getClass().getName());
}
} public static void main(String[] args) {
new b(); }
}
实现接口中的方法
1 package test;
import test.ExtendTest.A;
public class ImplementTest {
static interface A {
public void t();
}
static class B implements A {
public B() {
System.out.println("B 被创建!");
}
@Override
public void t() {
System.out.println("输出 B");
}
public void k() {
System.out.println(" 方法 K");
}
}
public static void main(String[] args) {
A b = new B();
// 1. B 被创建!
b.t();
// 2. 输出 B
// b.k();
// 3. 编译错误
}
}
extends && implements的更多相关文章
- 【Dart学习】-- Dart之extends && implements && with的用法与区别
一,概述 继承(关键字 extends) 混入 mixins (关键字 with) 接口实现(关键字 implements) 这三种关系可以同时存在,但是有前后顺序: extends -> m ...
- JAVA 构造器, extends[继承], implements[实现], Interface[接口], reflect[反射], clone[克隆], final, static, abstrac
记录一下: 构造器[构造函数]: 在java中如果用户编写类的时候没有提供构造函数,那么编译器会自动提供一个默认构造函数.它会把所有的实例字段设置为默认值:所有的数字变量初始化为0;所有的布尔变量设置 ...
- java中的内部类总结
内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类 如同一个人是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液.跳动) 显然, ...
- 周末惊魂:因struts2 016 017 019漏洞被入侵,修复。
入侵(暴风雨前的宁静) 下午阳光甚好,想趁着安静的周末静下心来写写代码.刚过一个小时,3点左右,客服MM找我,告知客户都在说平台登录不了(我们有专门的客户qq群).看了下数据库连接数,正常.登录阿里云 ...
- 大话JS面向对象之开篇万物皆对象------(ATM取款机引发的深思)
一,总体概要 OO(面向对象)概念的提出是软件开发工程发展的一次革命,多年来我们借助它使得很多大型应用程序得以顺利实现.如果您还没有掌握并使用OO进行程序设计和开发,那么您无疑还停留在软件开发的石器时 ...
- 第一个JAVA应用
1.1创建源文件 1.1.1Java源文件结构 Java应用由一个或多个扩展名为“.Java”的文件构成,这些文件被成为源文件.从编译角度,则被称为编译单元(Compilation Unit). 如果 ...
- Java开发面试总结
Java开发面试总结.. ----------------------- java 基础知识点这一块: 1.面向对象的三大特征.(继承,封装,多态) 1.1 在什么样的场合下面会使用到继承 1.2 什 ...
- C#与Java的比较
C#与Java的比较 写完后得知维基百科里有更加全面得多的比较: http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java NET(C#) ...
- java嵌套类
java有四种嵌套类: 静态内部类,成员内部类,局部内部类,匿名内部类 1)静态内部类: (1)类的申明加上staitc关键字.一般用public修饰 (2)只能访问外部类的静态变量和静态方法.不能访 ...
随机推荐
- 集合框架学习之List接口
Java语言的java.util包中提供了一些集合类,这些集合类又被称为容器.用来完善数组的不足之处.集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的:数组用来存放基本类型的数据,集合 ...
- luogu4093 [HEOI2016/TJOI2016]序列
因为一个变化只会变化一个值,所以 \(dp[i]=max(dp[j])+1,j<i,maxval_j \leq a[i], a[j] \leq minval_i\) 发现跟二维数点问题挺像,树状 ...
- 图论trainning-part-1 D. Going in Cycle!!
D. Going in Cycle!! Time Limit: 3000ms Memory Limit: 131072KB 64-bit integer IO format: %lld Ja ...
- zoj 2201 No Brainer
No Brainer Time Limit: 2 Seconds Memory Limit: 65536 KB Zombies love to eat brains. Yum. Input ...
- [Go]结构体及其方法
结构体类型可以包含若干字段,每个字段通常都需要有确切的名字和类型.也可以不包含任何字段,这样并不是没有意义的,因为还可以为这些类型关联上一些方法,这里可以把方法看作事函数的特殊版本. 函数事独立的程序 ...
- SQL Prompt 5.1使用
SQL Prompt 5.1教程 1.下载 自行下载安装文件.本人是从http://www.cr173.com/下载的. 2.安装 安装没什么特别的,不用说了 3.注意一下破解和配置 按里面的read ...
- 细胞分裂(洛谷 P1069)
题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家.现在,他正在为一个细胞实 验做准备工作:培养细胞样本. Hanks 博士手里现在有 N 种细胞,编号从 1~N,一个 ...
- Hashtable和HashMap 的区别
Hashtable和HashMap 第一点不同 主要是历史原因.Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现. 第二点不同 (也许 ...
- poj3532求生成树中最大权与最小权只差最小的生成树+hoj1598俩个点之间的最大权与最小权只差最小的路经。
该题是最小生成树问题变通活用,表示自己开始没有想到该算法:先将所有边按权重排序,然后枚举最小边,求最小生成树(一个简单图的最小生成树的最大权是所有生成树中最大权最小的,这个容易理解,所以每次取最小边, ...
- Swift--字典的了解
字典存储时,key和value值的类型都是固定的,且都是无序的. 1.字典类型的缩写语法 在swift中,字典的完整格式如下: Dictionary<Key, Value> 注意:字典的k ...